2012-09-17 171 views
0

我有一个网站,用户可以输入/输入多达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']; 
     } 

    } 

回答

0

我不清楚你想要做什么。 但是,您的每个IF情况下的代码重复从mysqli_num_rows($result2)获得相同的值,每种情况的次数不同。

1

您将通过此要循环(如你所说),而且,你的结果存储在一个阵列,你已经(基本)使用数组形式将其存储在独立的变量:

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

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

+0

嘛,怎么会通过一个手动可能循环? – user1592953

+0

@ user1592953,手动循环? PHP保留了GOTO语法,但它不是非常有用并且完全过时,您为什么需要手动循环,这对您意味着什么? –

1

试试这个

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

     } 

print_r($interest)//Array of itnerest