Ajax AutoComplete Support Product Page
Where clause ... Search database .. but with WHERE clause...
Shared 02 Dec 2010 16:28:29
1
likes this idea
02 Dec 2010 16:28:29 reinhardt ellis posted:
It would be great to have a conditional option..so if I search for something in a database it should bring up only the value in the "where" = input value..
Say i have 30 countries.. it can search all the counties as it does at the moment.. but if i have another field "active" then i would like to have the option of a where clause in the extention.. so it search the counties fields but with a conditional region..
i hope this makes sense...
Replies
Replied 09 Dec 2010 20:53:58
09 Dec 2010 20:53:58 C Brown replied:
You can add this into the SQL statment on the autopage-[your page name].asp page
From:
Sql = Sql & sPrimary & sOptional & " FROM " & sTable & " WHERE " & sLike
To:
Sql = Sql & sPrimary & sOptional & " FROM " & sTable & " WHERE Active = 1 and " & sLike
From:
Sql = Sql & sPrimary & sOptional & " FROM " & sTable & " WHERE " & sLike
To:
Sql = Sql & sPrimary & sOptional & " FROM " & sTable & " WHERE Active = 1 and " & sLike
Replied 20 Dec 2010 18:53:51
20 Dec 2010 18:53:51 reinhardt ellis replied:
Hi thanks for that..
i have replaced the code
with
but then i get an error
autocomplete-search_members-php-1.php on line 79
<?php error_reporting(0); set_error_handler("userErrorHandler"); // user defined error handling function function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars) { header("HTTP/1.0 500 Internal Error", true, 500); echo "<br />$errmsg in <b>$filename</b> on line <b>$linenum</b><br />"; } require_once('Connections/cpha2010.php'); mysql_select_db($database_cpha2010); //--jszone (DO NOT REMOVE THIS) $table='members'; $fields = array('memberCoName:primary','memberPProvince:optional'); //--jszone (DO NOT REMOVE THIS) function convert( $val ) { list($field,) = explode(':',$val); return $field; } $fields = implode(',',array_map('convert',$fields)); //-- $sql = 'SELECT '.$fields.' FROM `'.$table.'`'; $mc = isset($_GET['mc'])?true:false; $sa = isset($_GET['sa'])?true:false; if (!empty($_GET['q'])) { $f = explode(",", $fields); $sql .= ' WHERE memberActive = Active AND '.$f[0].' LIKE "'; //-- $sql .= ' WHERE '.$f[0].' LIKE "'; if (true === $mc) $sql .= "%"; $sql .= mysql_real_escape_string($_GET['q']).'%"'; if (true === $sa) { $fields = explode(',',$fields); $opt = array_slice($fields,1,count($fields)); foreach ($opt as $key => $value) { if ($mc === true) { $sql .= ' OR "'.$value.'" LIKE "%'.mysql_real_escape_string($_GET['q']).'%"'; } else { $sql .= ' OR "'.$value.'" LIKE "'.mysql_real_escape_string($_GET['q']).'%"'; } } } } if (isset($_GET['limit']) && is_int($_GET['limit'])) { $sql .= ' LIMIT '.$_GET['limit']; } $res = mysql_query($sql); header('Content-type: text/plain'); while ($row = mysql_fetch_array($res, MYSQL_NUM)) { echo join("|", $row)."\n"; } ?>
i have replaced the code
//-- $sql .= ' WHERE '.$f[0].' LIKE "';
with
$sql .= ' WHERE memberActive = Active AND '.$f[0].' LIKE "';
but then i get an error
autocomplete-search_members-php-1.php on line 79
Replied 20 Dec 2010 19:03:22
20 Dec 2010 19:03:22 reinhardt ellis replied:
I have even tried this
at line 32.. to select "memberActive" field but with no luck
at line 32.. to select "memberActive" field but with no luck
$sql = 'SELECT '.$fields.',memberActive FROM `'.$table.'`';
Replied 22 Dec 2010 10:53:17
22 Dec 2010 10:53:17 Miroslav Zografski replied:
Hello Reinhard,
try setting the memberActive in `` quotes.
Or pass here the error.
Regards,
try setting the memberActive in `` quotes.
Or pass here the error.
Regards,
Replied 23 Dec 2010 08:51:58
23 Dec 2010 08:51:58 reinhardt ellis replied:
Hi... Miro
This is what i have now...
and then i get the error
mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\wamp\www\cpha\autocomplete-search_members-php-1.php on line 76
Then the error comes up here somewhere...
but it must be because of the top sql not being correct.??
This is what i have now...
$sql = 'SELECT '.$fields.', `memberActive` FROM `'.$table.'`'; $mc = isset($_GET['mc'])?true:false; $sa = isset($_GET['sa'])?true:false; if (!empty($_GET['q'])) { $f = explode(",", $fields); $sql .= ' WHERE `memberActive` = Active AND '.$f[0].' LIKE "';
and then i get the error
mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\wamp\www\cpha\autocomplete-search_members-php-1.php on line 76
Then the error comes up here somewhere...
$res = mysql_query($sql); header('Content-type: text/plain'); while ($row = mysql_fetch_array($res, MYSQL_NUM)) { echo join("|", $row)."\n"; }
but it must be because of the top sql not being correct.??
Replied 13 Jan 2011 15:06:05
13 Jan 2011 15:06:05 Miroslav Zografski replied:
Hello all,
A follow up from a chat with Reinhardt:
the line:
does not provide a correct escape for the value that comes from $active variable. Thus some errors are thrown.
Instead use :
Regards,
A follow up from a chat with Reinhardt:
the line:
$sql .= ' WHERE `memberActive` = '.$active.' AND '.$f[0].' LIKE "';
does not provide a correct escape for the value that comes from $active variable. Thus some errors are thrown.
Instead use :
$sql .= ' WHERE `memberActive` = "'.$active.'" AND '.$f[0].' LIKE "';
Regards,
Replied 13 Apr 2011 22:17:37
13 Apr 2011 22:17:37 P R replied:
is it possible to search for a session variable instead of the static "1" ?
is there a workarround?