循环查询结果

时间:2012-09-17 05:26:59

标签: php mysql

我有一个网站,用户可以输入/输入最多5个兴趣点。现在,我想在表单字段中向用户显示用户的兴趣。这使他们能够直接编辑它们。

我首先要做的是在我的兴趣表中查询与用户相关的数据行。然后,我使用mysqli_num_rows来确定我必须做的变量。然后,我手动循环遍历数组以创建每个变量。

但是有一个问题,它不会循环到下一行数据。因此,例如$interest1将等于$interest2$interest3将执行相同的操作。等等等等。这不是我想要发生的事情。 $interest2, 3, 4, and 5应该都等于下一行数据。我可能做错了什么?

这是我的代码:

$result2= mysqli_query($connect, $query2);
    if (mysqli_num_rows($result2) != 0) {

        if (mysqli_num_rows($result2) == 1) {
        $row2= mysqli_fetch_array($result2);
        $interest1= $row2['interest'];
        }
        else if (mysqli_num_rows($result2) == 2) {
        $row2= mysqli_fetch_array($result2);            
        $interest1= $row2['interest'];
        $interest2= $row2['interest'];          
        }
        else if (mysqli_num_rows($result2) == 3) {
        $row2= mysqli_fetch_array($result2);            
        $interest1= $row2['interest'];
        $interest2= $row2['interest'];
        $interest3= $row2['interest'];
        }
        else if (mysqli_num_rows($result2) == 4) {
        $row2= mysqli_fetch_array($result2);            
        $interest1= $row2['interest'];
        $interest2= $row2['interest'];
        $interest3= $row2['interest'];
        $interest4= $row2['interest'];      
        }
        else if (mysqli_num_rows($result2) == 5) {
        $row2= mysqli_fetch_array($result2);            
        $interest1= $row2['interest'];
        $interest2= $row2['interest'];
        $interest3= $row2['interest'];
        $interest4= $row2['interest'];
        $interest5= $row2['interest'];
        }

    }

3 个答案:

答案 0 :(得分:1)

你想要循环这个(如你所说),但也要将结果存储在一个数组中,因为你已经(基本上)使用数组格式将它存储在单独的变量中:

$result2 = mysqli_query($connect, $query2);
$interests = array();
while ($result = mysqli_fetch_array($result2)) {
    $interests[] = $result['interest'];
}
print_r($interests);

根据您未设置值的问题,这是因为您没有循环遍历行,而是每次访问单个数组并将其设置为不同的变量。

答案 1 :(得分:1)

试试这个

   $result2= mysqli_query($connect, $query2);
       while($row= mysqli_fetch_array($result2))
      {
        $interest[]= $row['interest'];

      }

print_r($interest)//Array of itnerest

答案 2 :(得分:0)

我不清楚你要做什么。 但是,每个IF案例中的代码重复从mysqli_num_rows($result2)获得相同的值,每个案例只有不同的次数。