Re: [PHP-DB] Distinct Partial Matches: RegExp

2006-09-03 Thread Bastien Koert

SQL Server and DB2 (version dependant) don't support regexp in sql

Bastien



From: Micah Stevens [EMAIL PROTECTED]
To: J R [EMAIL PROTECTED]
CC: php-db@lists.php.net
Subject: Re: [PHP-DB] Distinct Partial Matches: RegExp
Date: Wed, 30 Aug 2006 18:29:19 -0700


You can do regular expression matching in MySQL and I think a few other 
servers too, but that's not the same as regular expression replacement like 
you can do with PHP.. It just returns a boolean true/false depending on 
whether or not the match works.


-Micah

J R wrote:

i'm a bit confused. if i'm getting you right heres my 2 cents:

first you do sql query using DISTINCT

when the result are returned to you, you can then run thru the result 
array

using preg_replace. heres an example:

$aVar= array(
   'animal-dog-5',
   'animal-dog-3',
   'animal-cat-1',
   'animal-cat-22',
   'animal-bird-5',
   );

$aResult= array();
foreach ($aVar as $value) {
   $tmp= preg_replace('/-\d*$/', '', $value);
   $aResult[$tmp]= $tmp;
   // if you want to conserve a bit of resources asign NULL;
   // $aResult[$tmp]= NULL;
}
var_dump($aResult);


hth,

john

p.s.
i'm not sure if it is possible to use regular expression in a sql query. 
can

anyone comment on this? thanks.

On 8/31/06, Kevin Murphy [EMAIL PROTECTED] wrote:


Well, its not really a search that would be way easier. :-) What
I'm looking for is a query that will give me the complete list of
items that are distinct, minus the last number after the last hyphen.

animal-dog
animal-cat
animal-bird

--
Kevin Murphy
Webmaster: Information and Marketing Services
Western Nevada Community College
www.wncc.edu
775-445-3326


On Aug 30, 2006, at 4:34 PM, Micah Stevens wrote:


 Select DISTINCT area from table like '$searchterms%';

 In SQL, you can use the 'LIKE' keyword along with the '%' and '_'
 wildcards.. '_' is one character, '%' is any number of chars.

 -Micah


 Kevin Murphy wrote:
 This might be really easy, but I'm just not sure how to write this
 query and my searching on google isn't finding me things, probably
 because I am searching for the wrong terms.

 I have a bunch of records where the area column is like:

 animal-dog-5
 animal-dog-3
 animal-cat-1
 animal-cat-22
 animal-bird-5

 What I want to do is run a distinct query on just the part
 previous to the number.

 animal-dog
 animal-cat
 animal-bird

 So in other words, something like this, but I am not sure if this
 is the right way to go:

 $query = SELECT DISTINCT area FROM table WHERE REGEXP
 'anynumberofletters dash anynumberofletters dash '


 Of course, I could be barking up the wrong tree with the REGEXP
 thing. Anyone care to point me in the right direction?


 --Kevin Murphy
 Webmaster: Information and Marketing Services
 Western Nevada Community College
 www.wncc.edu
 775-445-3326




 --Kevin Murphy
 Webmaster: Information and Marketing Services
 Western Nevada Community College
 www.wncc.edu
 775-445-3326












--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



RE: [PHP-DB] Direct Access to an Array Item?

2006-09-03 Thread Naintara
Perhaps you could elaborate on the exact motive
Say, why would you be checking against the 4th element of an array.

I could understand why you would want to check every element of an array
against a particular value, but why just the 4th element, just for interest.

In response to your question, there wasn't a way to access the index of an
array using the square bracket, but you could explore the various array
functions available in php. If you have a dynamic variable/counter, you
could instead use each() or next()

For instance, 
You can get this to work
$str = 123#456#789;
123 == current(explode('#', $str)) 

The result will be true.

Not sure if this helps you, but worth a shot.

-Original Message-
From: J R [mailto:[EMAIL PROTECTED] 
Sent: 10 August 2006 4:54 AM
To: php-db@lists.php.net
Subject: [PHP-DB] Direct Access to an Array Item?

On 8/9/06, Peter Beckman [EMAIL PROTECTED] wrote:

 I want to access a variable within a function-returned array without 
 setting the array to a variable first.  Example -- test for equal to 
 string 'foo' on the 4th element of a returned fetch row:

  if (($row = mysql_fetch_row($result))[3] == 'foo') {
  $user = $row;
  }

 or

  $bar = explode('#', $str)[2];


i don't think it is possible to do such syntax. nor theres a work around on
to make it way you want it. (i'm not an expert. just IMHO)

I know I can do this in perl, but can it be done in PHP?  Obviously this is
 pseudo code, it doesn't actually work, but I wonder if there is a way 
 that escapes me currently?

 I know I can assign the result to a variable and then test the 
 element; I am addicted to trying to cut down the amount and complexity 
 of code.  Even

 if you disagree with my goal as good computing practices,


i agree, its not a good programming practice and its makes your code less
readable. :)

I simply want to
 know if what I ask is possible, and if so, how. :-)

 Beckman


---
 Peter Beckman  Internet
 Guy
 [EMAIL PROTECTED]
 http://www.purplecow.com/
 --
 -


 --
 PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: 
 http://www.php.net/unsub.php




--
GMail Rocks!!!


-- 
GMail Rocks!!!

-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.10.8/413 - Release Date: 08/08/2006
 

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php