2014-05-24 3 views
-1

Ceci est ma fonction pour montrer aux utilisateurs le rôle "php" dans la base de données. Le problème est si j'utilise echo dans la fonction et dans la page html tout fonctionne bien. Si je change "echo" en "return" et que je le mets en html, je ne reçois que la première ligne.Fonctions return et echo

exemple Echo:

function showMembersPhp($mysqli) 
{ 
    $statement = $mysqli->query("SELECT * FROM members"); 
    while($row = $statement->fetch_array()){ 
    if ($row['role'] == 'php') { 
     echo '<tr class="odd gradeX"> 
       <td>'.$row['username'].'</td> 
       <td>'.$row['email'].'</td> 
       <td>'.$row['last_online'].'</td> 
       <td class="center">'.$row['last_ip'].'</td> 
      </tr>'; 
     }             
    } 
} 

Retour exemple:

function showMembersPhp($mysqli) 
{ 
    $statement = $mysqli->query("SELECT * FROM members"); 
    while($row = $statement->fetch_array()){ 
    if ($row['role'] == 'php') { 
     return '<tr class="odd gradeX"> 
       <td>'.$row['username'].'</td> 
       <td>'.$row['email'].'</td> 
       <td>'.$row['last_online'].'</td> 
       <td class="center">'.$row['last_ip'].'</td> 
      </tr>'; 
     }             
    } 
} 

Répondre

1

Lorsque vous retournez une valeur, vous êtes sorti de la fonction. C'est-à-dire, quitter la boucle. C'est pourquoi vous obtenez seulement une rangée.

2

Utilisez une variable locale comme celui-ci, puis le retourner après avoir parcourons ensemble du réseau:

function showMembersPhp($mysqli) 
{ 
    $ret = ""; 
    $statement = $mysqli->query("SELECT * FROM members"); 
    while($row = $statement->fetch_array()){ 
    if ($row['role'] == 'php') { 
     $ret = $ret. '<tr class="odd gradeX"> 
       <td>'.$row['username'].'</td> 
       <td>'.$row['email'].'</td> 
       <td>'.$row['last_online'].'</td> 
       <td class="center">'.$row['last_ip'].'</td> 
      </tr>'; 
     }             
    } 
    return $ret; 
}