问题描述
|
这是我的功能:
$result_display = MysqL_query(\"SELECT * FROM Events ORDER BY TimeStamp DESC LIMIT $y,20\");
$result_comment = MysqL_query(\"SELECT * FROM Comments\");
while($row_display = MysqL_fetch_array($result_display)){
echo \"<div id=\'id\'\" . $row_display[\'ID\'] . \" class=\'eventdiv\' data-sort=\'\".$row_display[\'TimeStamp\'].\"\'>\".$row_display[\'Title\'].\" TIME: \".$row_display[\'TimeStamp\'].\"</div>\";
while($row_comment = MysqL_fetch_array($result_comment)){
echo $row_comment[\'com_details\'];
}
}
HTML输出类似于以下内容:
<div id=\'id12\' class=\'eventdiv\' data-sort=\'238781>Time: 238781</div>
<div id=\'id13\' class=\'eventdiv\' data-sort=\'238784>Time: 238784</div>
<div id=\'id14\' class=\'eventdiv\' data-sort=\'238785>Time: 238785</div>
<div id=\'id15\' class=\'eventdiv\' data-sort=\'238789>Time: 238789</div>
<div id=\'id16\' class=\'eventdiv\' data-sort=\'238791>Time: 238791</div>
<div id=\'id17\' class=\'eventdiv\' data-sort=\'238795>Time: 238795</div>
These are the comment details...
但我希望输出是这样的:
<div id=\'id12\' class=\'eventdiv\' data-sort=\'238781>Time: 238781</div>
These are the comment details...
<div id=\'id13\' class=\'eventdiv\' data-sort=\'238784>Time: 238784</div>
These are the comment details...
<div id=\'id14\' class=\'eventdiv\' data-sort=\'238785>Time: 238785</div>
These are the comment details...
<div id=\'id15\' class=\'eventdiv\' data-sort=\'238789>Time: 238789</div>
These are the comment details...
<div id=\'id16\' class=\'eventdiv\' data-sort=\'238791>Time: 238791</div>
These are the comment details...
<div id=\'id17\' class=\'eventdiv\' data-sort=\'238795>Time: 238795</div>
These are the comment details...
我以为我在while语句中有一个while语句的方式会像上面的HTML一样显示它,但事实并非如此。
解决方法
第一次运行$ result_comment结果后,必须用
mysql_data_seek( $result_comment )
重置它。所以:
while($row_display = mysql_fetch_array($result_display)){
echo \"<div id=\'id\'\" . $row_display[\'ID\'] . \" class=\'eventdiv\' data-sort=\'\".$row_display[\'TimeStamp\'].\"\'>\".$row_display[\'Title\'].\" TIME: \".$row_display[\'TimeStamp\'].\"</div>\";
while($row_comment = mysql_fetch_array($result_comment)){
echo $row_comment[\'com_details\'];
}
mysql_data_seek( $result_comment );
}
, 您需要对第一个“ 5”循环中的每个元素运行查询。当前,没有将评论与每个事件相关联的东西:
$result_comment = mysql_query(\"SELECT * FROM Comments WHERE [id]=$id\");
, @DemianBrecht,我要把两个表关联起来,但我还没有这样做。不需要协会就可以得到我需要的东西-
@Jed,我不确定为什么,但是您提出的解决方案正在产生此错误:
\'Wrong parameter count for mysql_data_seek()\'
我发现了为什么它不起作用,第二个提取函数需要放在第一个while语句中。否则,它将在完成后立即执行:
$result_display = mysql_query(\"SELECT * FROM Events ORDER BY TimeStamp DESC LIMIT $y,20\");
while($row_display = mysql_fetch_array($result_display)){
echo \"<div id=\'id\'\" . $row_display[\'ID\'] . \" class=\'eventdiv\' data-sort=\'\".$row_display[\'TimeStamp\'].\"\'>\".$row_display[\'Title\'].\" TIME: \".$row_display[\'TimeStamp\'].\"</div>\";
while($row_comment = mysql_fetch_array($result_comment)){
$result_comment = mysql_query(\"SELECT * FROM Comments\");
echo $row_comment[\'com_details\'];
}
}
很简单。