MySQLi while循环在while循环内,从同一表收集数据

时间:2019-05-28 12:14:46

标签: mysqli while-loop

我有这张叫做studien的表:

I have this table called studien

我想创建一个下拉菜单,该菜单首先使用以下语句创建5个不同的类别(列类别):

"SELECT DISTINCT category FROM studien ORDER BY category ASC";

在另一个队列中,我收集研究名称的名称和ID,并将其类别与第一个队列中的类别进行比较。

由于某种原因,这是行不通的。

我阅读了有关multi_query的内容,但是如何比较同一张表中的相同值?

预先感谢

$selectvar = "SELECT * FROM studien ORDER BY name ASC";
$selectvar2 = "SELECT DISTINCT category FROM studien ORDER BY category ASC";

$result = mysqli_query($mysqli,$selectvar);
$result2 = mysqli_query($mysqli,$selectvar2);

while ($row2 = mysqli_fetch_array($result2))
{
echo "<option value='cat'>".utf8_encode($row2['category'])."</option>";
    while ($row = mysqli_fetch_array($result))
    {
        if($row2['category'] == $row['category'])
        {
        echo "<option value=".$row['id'].">".utf8_encode($row['name'])."</option>"; 
         }

    }

 }

1 个答案:

答案 0 :(得分:0)

您的问题是您在内部循环中多次调用mysqli_fetch_array($ result),而没有为$ result重置指针。 PHP不允许您在不首先重置结果指针的情况下重用mysqli_query()的结果。您可以通过添加行来重置指针

mysqli_data_seek($ result,0);

每次调用mysqli_fetch_array($ result)之前。

[道歉,我在用手机]