【发布时间】:2011-08-09 11:55:52
【问题描述】:
所有尝试学习的新手...感谢迄今为止的所有帮助!
更新 - 下面更新了代码 - 感谢 Phill
我现在正试图从表 horses 中获取相关的马信息,我可以使用 horse_name 字段将其加入 race_form。然后,我想在 while($racecard) 信息下方显示比赛中每匹马的信息。这是否使它更清晰一点?
我想我可以只做另一个查询,然后用 mysql_fetch_array 在我已经拥有的那个下面进行一个 while 循环,这将显示它然后进入下一场比赛,但这显然行不通......?!
我想知道您是否可以在一个while 循环中一个接一个地运行2 个while 循环?我正在制作赛马表格指南 - 我可以显示每场比赛列表,但在下面我想显示比赛中每匹马的个别马匹详细信息。无论如何,如果您查看此页面,您可以看到我正在尝试做的事情:
http://tasmanianracing.com/superform/formguide.php?meetingID=21042011LAUN&Submit=View+Form
问题是,只要我在比赛列表后面放第二个 while 循环,它就不会出现。我正在尝试运行查询以从我的马表中获取马的详细信息,然后为比赛中的每匹马运行一段时间,但没有任何显示。
我希望这已经足够清楚了......我的 sn-p 代码如下 - 如果我错过了重要的事情,请告诉我:
echo "<table width='990' border='1' cellspacing='2' cellpadding='2'>";
$racedetails = mysql_query("SELECT *
FROM race_info
WHERE meetingID = ('" . $safemeetingID . "')");
while($row = mysql_fetch_array($racedetails))
{
echo "<tr><td>Race " . $row['race_number'] . " at " . $row['start_time'] . " " . $row['class'] . " over " . $row['distance'] . "m</td></tr>";
$racecard = mysql_query("SELECT *
FROM race_form
INNER JOIN race_info ON race_form.raceID = race_info.raceID
WHERE race_form.raceID = ('" . $row['raceID'] . "')");
while($row = mysql_fetch_array($racecard))
{
echo "<tr><td>" . $row['number'] . "</td><td>" . $row['past10'] . "</td><td>" . $row['horse_name'] . "</td></tr>";
}
echo "</table><br>";
echo "<br>I wish I could put in some horse form here...<br>";
echo "<table width='990' border='1' cellspacing='2' cellpadding='2'>";
}
echo "</table>";
【问题讨论】:
-
如果你愿意,你可以将循环堆叠 1000 深,只需要一个开始就需要很长时间来执行完整的外循环。
-
嵌套循环并不少见。但请确保所有循环都有退出条件,就像@Calum 所说的那样,以确保以优化的方式执行以防止超时。
-
我不确定您到底遇到了什么问题,但如果它与您在每个 while 循环中重用变量
$row相关,我不会感到惊讶......为什么不尝试为每个循环使用不同的变量? -
好的,谢谢 - 我确信有更好的方法,但我的技能还很初级,所以我能想到的只有这些!
-
专业提示: 将选择查询放在循环中是一个非常糟糕的主意。您应该尝试在循环之外选择所有信息,然后进行操作。
标签: php mysql while-loop