2016-07-23 13 views
0

私はphpMyAdminの中でテストしてみたことは、MySQLでSELECTクエリを持っており、それは、同一のユーザ(数1)は、二つの役割(noAutorizado管理)は二つのレコード、示しています。今PHP:2つの異なる結果の代わりに同じ結果を2回表示するforループ?

を私はforループを使ってそのリストを表示しようとしましたが、2つの結果の代わりに最初の結果が2回表示されます。 代わり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>'; 
    } 
} 
関連する問題