| 
	
 | 
 Posted by strawberry on 04/13/07 18:17 
On Apr 13, 6:23 pm, Rami Elomaa <rami.elo...@gmail.com> wrote: 
> Vince Morgan kirjoitti: 
> 
> 
> 
> > "strawberry" <zac.ca...@gmail.com> wrote in message 
> >news:1176450464.524325.95990@n59g2000hsh.googlegroups.com... 
> >> On Apr 13, 1:51 am, "strawberry" <zac.ca...@gmail.com> wrote: 
> >>> I'm trying to extend a class (written by others) and was wondering if 
> >>> there's a standard a way of passing a $_GET request to a class. Here's 
> >>> what I have (see below). If I hardcode $where, something like 
> 
> >>> $where = " WHERE `firstname` = 'John' " 
> 
> >>> and then pass it as an argument into the scope of a 'select' function 
> >>> then it works fine, but otherwise the query just appears to hang. 
> 
> >>> I'm deliberately not including the class or class extender at this 
> >>> stage, but I'll add them to this thread later if required. 
> 
> >>> foreach ($_GET as $condition_key => $condition_value) { 
> >>>      $condition[] =" $condition_key = '$condition_value' "; 
> >>>  } 
> >>>  if(is_null($condition)){ 
> >>>  $where = " WHERE 1 "; 
> >>>  }else{ 
> >>>  $conditionString = implode('AND', $condition); 
> >>>  $where = " WHERE $conditionString "; 
> 
> > The line above is looking for a value from a field named $conditionString. 
> 
> No, it doesn't. Variables inside a double quoted string are parsed. It's 
> perfectly valid code. The example you gave would also work, but it's 
> totally unnecessary. 
> 
> Just try this and you'll learn something fun: 
> 
> <?php 
> 
> $cat = 'dog'; 
> 
> echo "I have an animal in my hand and the animal is a $cat. <br />"; 
> echo 'I have an animal in my hand and the animal is a $cat. <br />'; 
> 
> ?> 
> 
> -- 
> Rami.Elo...@gmail.com 
> 
> "Wikipedia on vähän niinq internetin raamattu, kukaan ei pohjimmiltaan 
> usko siihen ja kukaan ei tiedä mikä pitää paikkansa." -- z00ze 
 
Thanks Rami, 
 
I knew from the echoes that my statements were valid. Unfortunately, 
the mysrc class doesn't seem to agree with me :-( 
 
To recap. No matter what I try I just can't seem to pass this... 
 
foreach ($_GET as $condition_key => $condition_value) { 
$condition[] =" `$condition_key` = '$condition_value' "; 
$condition_keys[] = "$condition_key"; 
$condition_values[] = "'$condition_value'"; 
} 
if(is_null($condition)){ 
$conditionString = " 1 "; 
}else{ 
$conditionString = implode('AND', $condition); 
$conditionKeysString = implode(',',$condition_keys); 
$conditionValuesString = implode(',',$condition_values); 
} 
 
as arguments to this... 
 
class mysrc extends drasticsrcmysql { 
protected function select($conditionString){ 
$query = "SELECT * FROM $this->table WHERE $conditionString"; 
$res = mysql_query($query . $this->orderbystr, $this->conn) or 
die(mysql_error()); 
return ($res); 
} 
 
protected function add($conditionKeysString,$conditionValuesString){ 
$query = "INSERT INTO $this->table ($conditionKeysString) VALUES 
($conditionValuesString)"; 
mysql_query($query, $this->conn) or die(mysql_error()); 
if (mysql_affected_rows($this->conn) == 1) return(true); else 
return(false); 
} 
 
....unless I pass a bogus column name: Unknown column 
'false_column_name' in 'where clause'
 
  
Navigation:
[Reply to this message] 
 |