2016-07-23 144 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>'; 
    } 
} 
相關問題