mysqli_fetch循环不起作用

时间:2013-09-26 12:30:51

标签: php mysql loops while-loop

我在其他循环中有一个不起作用的循环,这是代码:

    while($row = mysqli_fetch_array($result))
   {
    echo "<tr>";
    echo "<td>" . $row['rowId'] . "</td>";
    echo "<td>" . $row['startDate'] . "</td>";
    echo "<td>" . $row['eventName'] . "</td>";
    echo "<td>" . $row['betName'] . "</td>";
    $string1 = "SELECT * FROM newCell WHERE rowId ='";
    $string2 = $row['rowId']."'";
    $result2 = $string1.$string2;
    echo "<td>" . $result2 . "</td>";

    while($row2 = mysqli_fetch_array($result2))
    {
        echo "<td>" . $row2['odds'] . "</td>";

        echo "<td>" . $row2['outcomeName'] . "</td>";
    }
   echo "</tr>";
   }

当我将$ result2直接查询到BBDD中以获得第一个结果时,它会显示三个结果,但代码不会进入第二个LOOP。为什么?这里有任何错误吗?

6 个答案:

答案 0 :(得分:0)

使用:

$query = "SELECT ....";
$result2 = mysqli_query($db, $query);

while($row2 = mysqli_fetch_array($result2))
{
        echo "<td>" . $row2['odds'] . "</td>";

        echo "<td>" . $row2['outcomeName'] . "</td>";
}

答案 1 :(得分:0)

我认为$ result2应该输出mysqli_query而不仅仅是查询。与MySQL类似的谈话。

可能你应该有这样的东西

$result2 = mysqli_query($result2);

答案 2 :(得分:0)

在阅读此How can I prevent SQL injection in PHP?主题之前。尝试使用mysql_query()

答案 3 :(得分:0)

试试这个

<?php
while($row = mysqli_fetch_array($result))
   {
    echo "<tr>";
    echo "<td>" . $row['rowId'] . "</td>";
    echo "<td>" . $row['startDate'] . "</td>";
    echo "<td>" . $row['eventName'] . "</td>";
    echo "<td>" . $row['betName'] . "</td>";
    $string1 = "SELECT * FROM newCell WHERE rowId ='";
    $string2 = $row['rowId']."'";
    $result2 = $string1.$string2;
    echo "<td>" . $result2 . "</td>";
    $results = mysqli_query($db,$result2);
    while($row2 = mysqli_fetch_array($results))
    {
        echo "<td>" . $row2['odds'] . "</td>";

        echo "<td>" . $row['outcomeName'] . "</td>";
    }
   echo "</tr>";
   }
  ?>

答案 4 :(得分:0)

  while($row = mysqli_fetch_array($result))
   {
    echo "<tr>";
    echo "<td>" . $row['rowId'] . "</td>";
    echo "<td>" . $row['startDate'] . "</td>";
    echo "<td>" . $row['eventName'] . "</td>";
    echo "<td>" . $row['betName'] . "</td>";
    $string1 = "SELECT * FROM newCell WHERE rowId ='";
    $string2 = $row['rowId']."'";
    $result2 = $string1.$string2;
    echo "<td>" . $result2 . "</td>";

    $result2 = mysqli_query($connection, $result2);

    while($row2 = mysqli_fetch_array($result2))
    {
        echo "<td>" . $row2['odds'] . "</td>";

        echo "<td>" . $row2['outcomeName'] . "</td>";
    }
   echo "</tr>";
   }

答案 5 :(得分:0)

在获取数据之前,使用mysqli_query()函数执行mysql查询,然后运行mysqli_fetch_array()。如果您将结果计为$ count = mysqli_num_rows($ query)并使用if ... else来管理您的代码,那将是一件好事。