Re: PHP query to mysql database returns emtpy data, but Query Browser shows records

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



graeme wrote:
Hi,

You have:

$query example = SELECT description from cpProducts where category='39 47 48 172'

don't you want to add a logical operator such as OR, possibly AND

$query example = SELECT description from cpProducts where category='39 OR 47 OR 48 OR 172'

graeme.

whatever it is that he is trying to do - I doubt he wants to put 'OR's in the character string, besides which AFAIK you can't do something like:


SELECT description from cpProducts where category=39 OR 47 OR 48 OR 172;

(possibly the SQL above will actually return all rows because any number greater than zero will evaluate to true - e.g. ($x = true || 1) is always true regardless of the value of $x, I am assuming the same general logic goes for SQL or'ing)
it should be:


SELECT description from cpProducts where category=39 OR 47 OR 48 OR 172;

Jason, read on for more (possible) help (well I gave it a shot but I don't think it will be any help, sorry):


Jason Walker wrote:



Here is the query:

function ReturnPackageDescriptions($pack, $cat, $hotcat, $hotid){
$comIB = $cat . " " . $pack . " " . $hotcat . " " . $hotid;
$catLength = strlen($comIB);
echo $catLength;
$query = "SELECT description from cpProducts where category='" . $cat . " " . $pack . " " . $hotcat . " " . $hotid . "'";
echo "<bR>" . $query . "<br>";
echo "combined package number = " . $comIB . "<br>";
$retval = "";
$link = mysql_connect($config['host'],$config['user'],$config['pass']) or die("Could not connect");
mysql_select_db('stc_store') or die("Unable to connect to the default database");
$result = mysql_query($query) or die("Unable to pull the menu objects for main event details");
echo mysql_affected_rows() . "<br>";
while ($results = mysql_fetch_array($result, MYSQL_ASSOC)){
extract($results);
echo $description;
$retval = $description;
}
mysql_free_result($result);
mysql_close($link);
return $retval;
}


I have some extra 'echo' statements to see the progress on the web page. If I remove the 'where' clause within the SQL statement, I get rows. But when I add the 'where' portion, no records are returned.

Here is an example of what the query looks like:

$query example = SELECT description from cpProducts where category='39 47 48 172'

I'll assume that your table has a field named 'category' - otherwise the statement should throw you a big error :-) BUT is it a character data field (i.e. does it contain text)? AND do you actually have rows where the value of the category field is '39 47 48 172' - in order to get rows returned when running your example query the value needs to match this string EXACTLY.


Given the fact that using mysql control center give you the desired result the above probably was a waste of time typing. Given that fact the only thing I can think of is that you have a extra space floating about (but I can't see it in the code your provided)

does the output of mysql_error() provide any feedback?

(what an odd problem!)



When I run the same query in MYSQL Control center or Query Browser, no problem. I use this function template for my SELECT statements.


Please let me know if there is something missing from the code.

Thanks.





Jason Walker

jwalker@xxxxxxxxxxxxxxx <mailto:jwalker@xxxxxxxxxxxxxxx>

http://www.desktophero.com



------------------------------------------------------------------------

No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.298 / Virus Database: 265.6.8 - Release Date: 1/3/2005





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


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux