您好,我正在尝试查询我的数据库表"shout_out",在while循环期间,我有一条if语句要检查"convers_id“列是否已从no_reply更改。如果有,我希望运行另一个查询,并从shout_out_reply表中获得具有相同"convers_id“列的所有行。我正在尝试得到一个类似于facebook“墙”的布局。一些人发表评论,其他人可以回复评论,回复位于原始评论下。
我一直收到mysqli_query($dbc,$query_shout_out_reply)失败的消息。但也有带有相同"convers_id“的回复
$query_shout_out = "SELECT * FROM shout_out WHERE sent_to = '$username' ";
$shout_out_query = mysqli_query($dbc, $query_shout_out);
if (mysqli_num_rows($shout_out_query) != 0) {
while ($row = mysqli_fetch_array($shout_out_query)) {
echo '<td class="shout_out_display" width="550">';
echo $row['message'] . ' <br/><br/> From ' . $row['sent_by'] . ' at ' . $row['date_sent'];
echo '</td></tr>';
echo $row['convers_id'];
if ($row['convers_id'] != "no_reply") {
$query_shout_out_reply = "SELECT * FROM shout_out_reply WHERE convers_id = " . $row['convers_id'];
$shout_out_reply_query = mysqli_query($dbc, $query_shout_out_reply);
while ($reply_row = mysqli_fetch_array($shout_out_reply_query)) {
echo ' <tr width="550"><td width="125" >   </td>';
echo '<td width="425" class="shout_out_reply_display">';
echo $reply_row['message'] . '<br/><br/>Reply From ' . $reply_row['sent_by'] . ' at ' . $reply_row['date_sent'];
echo '</td></tr>';
}
}
}
}发布于 2011-12-16 05:49:30
SELECT * FROM shout_out AS so LEFT JOIN shout_out_reply AS sor ON sor.convers_id = so.convers_id WHERE so.sent_to = '$username' AND so.convers_id != 'no_reply'这里的关键是使用SQL JOIN语句。它将在一条语句中给出两个表的结果。...then,你不需要经历这个循环。发出所有这些sql请求。
发布于 2011-12-16 05:52:12
你必须设计这样的表结构,这将使你更容易创建连接和复杂的查询。首先,您需要了解works连接是如何进行的,以及它们何时必须使用。在谷歌上查一下这个。
https://stackoverflow.com/questions/8527015
复制相似问题