Récupérer tous les résultats de la base de données à l'aide de mysqli
s'il vous plaît vérifier mon code ci-dessous. Avec cette classe, je suis en mesure de afficher les résultats comme suit:
$connectTest = new testResults();
$test = $connectTest->grabResults(test, id, id);
echo $test['id'];
echo $test['name'];
echo $test['address'];
Dans ma base de données j'ai plusieurs champs dans le "test" de la table. Je vais à ma page à l'aide de l'index.le php?id=1. Avec cela, je suis en montrant les résultats d'une rangée parce qu'il saisit tous les résultats where id = 1.
Ce dont j'ai besoin est la classe ci-dessous pour afficher plusieurs résultats. Il affiche juste une ligne. Mais si j'ai plusieurs lignes avec l'id = 1 je voudrais afficher ces résultats, mais je ne peux pas le faire fonctionner. J'ai essayé beaucoup de choses mais je finis toujours avec un seul résultat.
classe:
class testResults
{
public function grabResults($table, $field, $id)
{
$result = $this->db->mysqli->query("SELECT * FROM $table WHERE $field = $id");
$resultData[] = array();
if(!$result)
{
return false;
}
while($row = $result->fetch_assoc())
{
$rows[] = $row;
}
foreach ($rows as $resultData)
{
return $resultData;
}
}
}
Edit:
Array ( [id] => 25 [name] => test [status] => 1 )
Array ( [id] => 25 [name] => test [status] => 3 )
Array ( [id] => 25 [name] => test [status] => 5 )
Array ( [id] => 25 [name] => test [status] => 4 )
Array ( [id] => 26 [name] => test [status] => 1 )
Array ( [id] => 26 [name] => test [status] => 3 )
Array ( [id] => 27 [name] => test [status] => 1 )
Array ( [id] => 27 [name] => test [status] => 3 )
Array ( [id] => 27 [name] => test [status] => 5 )
Array ( [id] => 27 [name] => test [status] => 4 )
Array ( [id] => 27 [name] => test [status] => 2 )
Array ( [id] => 27 [name] => test [status] => 4 )
Array ( [id] => 27 [name] => test [status] => 1 )
Je suis l'obtention de résultats que ci-dessus, de toute façon pour afficher facilement ces résultats dans un echo? Pour chaque id les résultats sont différents, de sorte que les résultats varient avec chaque requête. Je voudrais donc afficher les résultats dans un tableau par exemple comme ceci:
echo '<table>
<tr>
<td>$id</td>
<td>$name</td>
<td>$status</td>
</tr>
</table>';
De sorte que tous les résultats seront affichés comme dans une boucle while.
OriginalL'auteur Hardist | 2014-03-20
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement retourner un tableau à partir de la fonction et ensuite en boucle dans votre script
La vous pouvez faire une boucle dans votre script
Sur OP modifier
Si vous avez besoin d'imprimer séparés, vous pouvez accéder à tous les éléments avec le nom de la variable et des étendues avec les touches comme suit
OriginalL'auteur Fabio
On dirait que vous êtes de retour d'une seule ligne de vos résultats avec ce morceau de la fonction:
Vous devriez vous suffit de retourner le tout à la place.
OriginalL'auteur Fluffeh
Puisque vous êtes de passage le plein jeu de résultats d'une autre couche de traitement, vous pouvez passer la boucle pour générer un tableau de tableaux associatifs du resultset.
Ensuite, lorsque vous souhaitez générer un tableau html à partir de la renvoyées tableau de tableaux associatifs, utilisez
implode()
comme une solution souple qui ne se soucie pas si vous changez le nombre de colonnes est passée -- il prendra en charge un nombre illimité de colonnes.OriginalL'auteur mickmackusa
return
à l'intérieur deforeach()
itération signifie arrêter juste après la première itération. Par conséquent, vous serez toujours seul le premier résultat.Vous feriez mieux d'écrire ce que:
OriginalL'auteur Yang