2016-07-23 146 views
0

我有MySQL中的SELECT查询,我在phpMyAdmin测试过,它显示两条记录,其中同一用户(1号),有两个角色(noAutorizado管理):PHP:for循环显示两次相同的结果而不是两个不同的结果?

现在,我试图用for循环显示一个列表,它显示了第一个结果两次,而不是两个结果。 因此,而不是显示noAutorizado管理的,它显示noAutorizadonoAutorizado

循环有什么问题?

$conectar2 = mysqli_connect(HOST, USER, PASS, DATABASE); 
$buscarRoles = "SELECT userID, nombreRol 
      FROM rolesUsuarios 
      WHERE userID='$uid' 
      "; 
$roles = mysqli_query($conectar2,$buscarRoles);  

    if($roles){ 
     $rol = mysqli_fetch_array($roles); 
     $cantRegistros = mysqli_num_rows($roles); 
     for ($i=0; $i < $cantRegistros; $i++) { 
      echo $rol['nombreRol'].'<br>'; 
     } 
    } else ... 
+1

'mysqli_fetch_array'取出一个角色 –

+1

而($ ROL = mysqli_fetch_array($角色)){$回声ROL [ 'nombreRol']“。
'; } – JYoThI

回答

1

这是因为数组表示返回的结果集的单排获取结果。您需要再次执行mysqli_fetch_array函数才能获取下一条记录。例如:

while($rol = mysqli_fetch_array($roles)) { echo $rol['nombreRol'].'<br>'; } 
3

我认为你需要在一个循环

$conectar2 = mysqli_connect(HOST, USER, PASS, DATABASE); 
$buscarRoles = "SELECT userID, nombreRol 
      FROM rolesUsuarios 
      WHERE userID='$uid'"; 
$roles = mysqli_query($conectar2,$buscarRoles);  

if($roles){ 
    while($rows=mysqli_fetch_object($roles)){ 
     echo $rows->nombreRol.'<br>'; 
    } 
} 
相关问题