Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 一个While循环中有多个While循环?_Php_Mysql_While Loop - Fatal编程技术网

Php 一个While循环中有多个While循环?

Php 一个While循环中有多个While循环?,php,mysql,while-loop,Php,Mysql,While Loop,总新手试图学习。。。谢谢你到目前为止的帮助 更新-下面更新了代码-谢谢Phill 我现在正试图从表horses中获取相关的马信息,我可以通过horse\u name字段将其加入到race\u表单中。然后我想在while($racecard)信息下面显示比赛中每匹马的信息。这能让事情更清楚一点吗 我想我可以做另一个查询,然后在我已经拥有的mysql_fetch_数组下面进行一个while循环,这将显示它,然后进入下一场比赛,但这显然不起作用 我想知道你是否可以在一个while循环中依次运行两个wh

总新手试图学习。。。谢谢你到目前为止的帮助

更新-下面更新了代码-谢谢Phill

我现在正试图从表
horses
中获取相关的马信息,我可以通过horse\u name字段将其加入到
race\u表单中。然后我想在while($racecard)信息下面显示比赛中每匹马的信息。这能让事情更清楚一点吗

我想我可以做另一个查询,然后在我已经拥有的mysql_fetch_数组下面进行一个while循环,这将显示它,然后进入下一场比赛,但这显然不起作用

我想知道你是否可以在一个while循环中依次运行两个while循环?我正在编写一个赛马表单指南-我可以显示每一个比赛列表,但在下面我想显示比赛中每匹马的详细信息。无论如何,如果您查看此页面,您可以看到我正在尝试做什么:

问题是,任何时候我在比赛列表后放置第二个while循环,它都不会出现。我试图运行一个查询,从我的马表中获取马的详细信息,然后为比赛中的每匹马运行一段时间,但没有显示任何内容

我希望这足够清楚。。。下面是我的代码片段-如果我遗漏了一些重要内容,请告诉我:


echo”“;
$racedetails=mysql\u查询(“选择*
从种族信息
其中meetingID=(“$safemeetingID.”)号;
while($row=mysql\u fetch\u数组($racedetails))
{
在“$row['start\'U time']”和“$row['class']”之间的“$row['TRACE\'U number']”和“$row['distance']”之间的“$row['distance']”之间回音“Race”。”;
$racecard=mysql\u查询(“选择*
从种族形态
内部连接race\u form.raceID上的race\u信息=race\u info.raceID
其中race_form.raceID=(““$row['raceID']”.“)”);
while($row=mysql\u fetch\u数组($racecard))
{
回显“$row['number']”、$row['pass10']”、$row['horse_name']”;
}
回声“
”; echo“
我希望我能在这里放一些马的形状…
”; 回声“; } 回声“;
您可能需要更改某些
$row
变量的名称,它们可能相互干扰

例如:

while($row_races = mysql_fetch_array($totalraces)){
while($row_details = mysql_fetch_array($racedetails)){
while($row_card = mysql_fetch_array($racecard)){

您可能需要更改某些
$row
变量的名称,它们可能相互干扰

例如:

while($row_races = mysql_fetch_array($totalraces)){
while($row_details = mysql_fetch_array($racedetails)){
while($row_card = mysql_fetch_array($racecard)){

我理论上你可以,实际上你也可以,但是a
while
在a
中,while
在a
中,while
似乎有点过头了


我相信,如果你解释你想做什么,我们可以帮助你提高效率。

我理论上你可以,实际上你可以,但是a
中的while
而a
中的while
对于a
中的while
似乎有点过头了


我相信,如果你解释一下你想做什么,我们可以帮助你提高效率。

我想你可以摆脱你的一个疑问:

第一个查询通过选择一个计数来获取比赛的数量,这将返回一条带有计数值的记录

// This returns one record with the count
$total_races    = "SELECT COUNT(race_number) AS totalraces 
                   FROM race_info WHERE meetingID = ('".$safemeetingID."') ";
接下来,您将遍历相同的记录,因为为竞赛详细信息返回的行与计数相同

// This looks to return the record(s) with the race details
$race_details   = "SELECT * FROM race_info 
                    WHERE meetingID = ('" . $safemeetingID . "')";
我认为您可以使用它来获得所需的结果:(我同意将$row变量重命名为每个while循环的描述性变量)

这个想法是将两个查询合并为一个,我知道这不是正确的语法,但它可能会让您了解如何进行

或者,您可以在循环查找马名的同时执行另一个查询

$racedetails = mysql_query("SELECT *
FROM race_info
WHERE meetingID = ('" . $safemeetingID . "')");

while($details_row = mysql_fetch_array($racedetails))
{
    echo "<tr><td>Race " . $details_row['race_number'] . " at " . $details_row['start_time'] . " " . $details_row['class'] . " over " . $details_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 = ('" . $details_row['raceID'] . "')");

    while($rc_row = mysql_fetch_array($racecard))
    {
        echo "<tr><td>" . $rc_row['number'] . "</td><td>" . $rc_row['past10'] . "</td><td>" . $rc_row['horse_name'] . "</td></tr>";

        $horses = mysql_query("SELECT *
        FROM horses
        WHERE horse_name = ('" . $rc_row['horse_name'] . "')");

        while($horse_row = mysql_fetch_array($horses))
        {
            // echo horse details here
        }
    }

    echo "</table><br>";

    echo "Testing<br>Testing<br>I wish I could put in some horse form here...<br>";

    echo "<table width='990' border='1' cellspacing='2' cellpadding='2'>";

}
$racedetails=mysql\u查询(“选择*
从种族信息
其中meetingID=(“$safemeetingID.”)号;
而($details\u row=mysql\u fetch\u数组($racedetails))
{
回显“$details\u row['Race\u number']”在“$details\u row['start\u time']”上的“$details\u row['class']”在“$details\u row['distance']”上的“$details\u row['distance']”m”上的“Race.”;
$racecard=mysql\u查询(“选择*
从种族形态
内部连接race\u form.raceID上的race\u信息=race\u info.raceID
其中race_form.raceID=(“$details_row['raceID']);
而($rc\u row=mysql\u fetch\u数组($racecard))
{
回显“$rc_行['number']”、$rc_行['pass10']”、$rc_行['horse_name']”;
$horses=mysql\u查询(“选择*
来自马
其中horse_name=(“$rc_row['horse_name'.”)”);
while($horse\u row=mysql\u fetch\u数组($horses))
{
//回声马的细节在这里
}
}
回声“
”; echo“Testing
Testing
我希望我能在这里放一些马的形状…
”; 回声“; }
我认为您可以摆脱其中一个查询:

第一个查询通过选择一个计数来获取比赛的数量,这将返回一条带有计数值的记录

// This returns one record with the count
$total_races    = "SELECT COUNT(race_number) AS totalraces 
                   FROM race_info WHERE meetingID = ('".$safemeetingID."') ";
接下来,您将遍历相同的记录,因为为竞赛详细信息返回的行与计数相同

// This looks to return the record(s) with the race details
$race_details   = "SELECT * FROM race_info 
                    WHERE meetingID = ('" . $safemeetingID . "')";
我认为您可以使用它来获得所需的结果:(我同意将$row变量重命名为每个while循环的描述性变量)

这个想法是将两个查询合并为一个,我知道这不是正确的语法,但它可能会让您了解如何进行

或者,您可以在循环查找马名的同时执行另一个查询

$racedetails = mysql_query("SELECT *
FROM race_info
WHERE meetingID = ('" . $safemeetingID . "')");

while($details_row = mysql_fetch_array($racedetails))
{
    echo "<tr><td>Race " . $details_row['race_number'] . " at " . $details_row['start_time'] . " " . $details_row['class'] . " over " . $details_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 = ('" . $details_row['raceID'] . "')");

    while($rc_row = mysql_fetch_array($racecard))
    {
        echo "<tr><td>" . $rc_row['number'] . "</td><td>" . $rc_row['past10'] . "</td><td>" . $rc_row['horse_name'] . "</td></tr>";

        $horses = mysql_query("SELECT *
        FROM horses
        WHERE horse_name = ('" . $rc_row['horse_name'] . "')");

        while($horse_row = mysql_fetch_array($horses))
        {
            // echo horse details here
        }
    }

    echo "</table><br>";

    echo "Testing<br>Testing<br>I wish I could put in some horse form here...<br>";

    echo "<table width='990' border='1' cellspacing='2' cellpadding='2'>";

}
$racedetails=mysql\u查询(“选择*
从种族信息
其中meetingID=(“$safemeetingID.”)号;
而($details\u row=mysql\u fetch\u数组($racedetails))
{
回显“$details\u row['Race\u number']”在“$details\u row['start\u time']”上的“$details\u row['class']”在“$details\u row['distance']”上的“$details\u row['distance']”m”上的“Race.”;
$racecard=mysql\u查询(“选择*
从种族形态
内部连接race\u form.raceID上的race\u信息=race\u info.raceID
其中race_form.raceID=(“$details_row['raceID']);
而($rc\u row=mysql\u fetch\u数组($racecard))
{
回音“$rc_行['number']”、$rc_行['past10']”、$rc_行['horse']”_