RE: [PHP] Simple Problem

From: Date: Tue, 12 Apr 2005 15:34:12 +0000
Subject: RE: [PHP] Simple Problem
Groups: php.general 
Request: Send a blank email to php-general+get-212928@lists.php.net to get a copy of this message
<snip> I can't figure out what I am doing wrong, this sql string seems to filter out the information I want but it duplicates the all info, as 'num_rows' is total of rows in the table and not the correct value of the filtered information? $sql="SELECT products.productID, products.title, products.number_per_box, products.stock_level, products.image, users.username, users.email, users.userID FROM users, products WHERE products.userID = $userID"; $mysql_result=mysql_query($sql,$connection); $num_rows=mysql_num_rows($mysql_result); this is the old sql statement which works fine - $sql="SELECT productID, title, number_per_box, stock_level, image, userID FROM products WHERE userID = '$userID'"; $mysql_result=mysql_query($sql,$connection); $num_rows=mysql_num_rows($mysql_result); what I am I doing wrong. </snip> In the old query you're jut pulling records from one table. In the second, you're joining two tables, but you're still using the same WHERE clause, products.userID = $userID. This is causing multiple records to be returned, since there is nothing specifying how you are joining the users and products table so it correctly returns a match for every row in the user table. Change the where clause to: WHERE products.userID = $userID AND users.userID = $userID and this will force the query to limit results to those records in products that have a matching record in the users table. HTH. Pablo

« previous php.general (#212928) next »