php在一个查询中打印两个表的结果

时间:2012-04-28 14:25:17

标签: php mysql

我在一个查询中获取两个表结果。现在我在每个表中都有一行name = userid。当我打印表一的id时,这不起作用并打印表二的id。即,我从产品中选择*,然后{user} = {user} = userid = {user}现在我需要从产品表中打印userid,但我的结果是来自voteproduct的打印用户ID。怎么解决这个问题?感谢

我的代码:

voteid,userid

编辑:如果我从产品表中选择了$sql = 'SELECT * FROM ' . PREFIX . '_product,' . PREFIX . '_voteproduct WHERE ' . PREFIX . '_voteproduct.voteid = ' . PREFIX . '_product.id AND ' . PREFIX . '_voteproduct.userid = "' . $userid . '" ORDER BY name ' . $pages->limit .' '; $db->query($sql) or error ('ERROR', mysql_error ()); $result = $db->query ( $sql ); if($db->numrows($result)>0){ while ($row = $db->fetcharray($result)) { echo $row['userid']; // PROBELM THIS PRINTED USERID FROM VOTEPRODUCT I NEED PRINT USER ID FROM PRODUCT } ,那么我需要全部。 (名称,价格,日期,类别......)

3 个答案:

答案 0 :(得分:3)

select *是一种懒惰的做法,特别是当你看起来只是要求一个单一的字段时。你不跑到商店,抓住整个商店的货架,把它带回家,然后扔掉一切,除了你想要的一个糖果棒。

怎么样

SELECT product.userid
FROM ...
WHERE ...

所以你只得到你需要的确切单个字段?

答案 1 :(得分:1)

您可以使用AS选择每个用户ID,以便单独使用它们,如下所示

$sql = 'SELECT p.userid as pid, vp.userid as vpid, ... FROM ' . PREFIX  . '_product AS p,' . PREFIX  . '_voteproduct AS vp WHERE vp.voteid = p.id AND vp.userid =  "' . $userid . '" ORDER BY name ' . $pages->limit .' ';

并使用;

echo $row['pid'];

答案 2 :(得分:1)

select p.userid as puserid, v.userid as vuserid ... FROM ' . PREFIX  . '_product p,' . PREFIX  . '_voteproduct v where ...

echo $row['puserid'];