Php 使用一个查询的结果作为MySQL上另一个查询的输入
我试图使用一个查询的结果作为另一个查询的输入,但我被难住了。我考虑过使用JOIN,但我认为在这种情况下,这两个查询需要分别运行。基本上,我的数据库中有一个文章列表。当我循环浏览从第一次查询中获得的列表或文章时,我想搜索第二个表以找出每篇文章的投票数 代码如下:Php 使用一个查询的结果作为MySQL上另一个查询的输入,php,mysql,Php,Mysql,我试图使用一个查询的结果作为另一个查询的输入,但我被难住了。我考虑过使用JOIN,但我认为在这种情况下,这两个查询需要分别运行。基本上,我的数据库中有一个文章列表。当我循环浏览从第一次查询中获得的列表或文章时,我想搜索第二个表以找出每篇文章的投票数 代码如下: <?php $sql=mysql_query("SELECT * FROM discussion_links WHERE link_side = 'Michigan'"); while($row = mysql_fetch_
<?php
$sql=mysql_query("SELECT * FROM discussion_links WHERE link_side = 'Michigan'");
while($row = mysql_fetch_array($sql)) {
?>
<div class="top-links-wrapper">
<div>
<div class="link-info">
<a class="link-title" href="http://<?php echo $row['link_url'] ?>">
<?php echo $row['link_title'] . "</a>"; ?>
<p class="link-source"><?php echo $row['link_source'] . "</p>" ?>
</div>
<div class="link-vote-wrapper">
<span class="link-votes">
<?php
$sql2=mysql_query("SELECT * FROM link_votes WHERE link_id = " . $row['link_id'] .")";
$num_rows = mysql_num_rows($sql2);
echo "$num_rows";
?>
</span>
</div>
</div>
</div>
更改
$sql2=mysql_query("SELECT * FROM link_votes WHERE link_id = " . $row['link_id'] .")";
到
右括号)
是函数调用的一部分,而不是查询的一部分
或者最好创建一个查询:
SELECT * FROM discussion_links d
JOIN link_votes v
on d.link_id = v.link_id
WHERE d.link_side = 'Michigan'
您应该替换SELECT*
,只需选择所需的列即可您可以加入这两个查询
SELECT dl.* , lv.*
FROM discussion_links dl
LEFT JOIN link_votes lv ON lv.link_id = dl.link_id
WHERE link_side = 'Michigan'
已修复,在第二次查询中出错:
$sql2=mysql_query("SELECT * FROM link_votes WHERE link_id = " . $row['link_id']);
它现在可以工作了。请不要使用mysql.*
函数来编写新代码。它们不再得到维护,社区已开始恢复。看到了吗?相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果你想学习,.Thank@Truth,这是新的,所以最好学习新的标准。谢谢,刚刚注意到“')的错误。将尝试您建议的第二个查询。@LuisP您可能需要进行左联接
,因为可能有文章没有投票权
$sql2=mysql_query("SELECT * FROM link_votes WHERE link_id = " . $row['link_id']);