2010-05-15 5 views
0

Y at-il une fonction PHP pour obtenir le résultat complet avec une requête mysql dans un tableau multidimensionnel?Obtenez le résultat complet

SELECT * FROM table 

Habituellement je voudrais faire quelque chose comme ceci:

$query = mysql_query = ("SELECT * FROM table"); 
while ($result = mysql_fetch_array($query){ 
    echo $result[0]; 
} 
+0

Réponse courte: non, à moins que vous écrivez vous-même. – Franz

Répondre

1

Si vous utilisez PDO pour accéder à mysql, il y en a. http://www.php.net/manual/en/pdostatement.fetchall.php

Sinon, vous devez le faire vous-même.

$query = mysql_query = ("SELECT * FROM table"); 
$all_results = array(); 
while ($result = mysql_fetch_array($query){ 
    $all_results[] = $result; 
} 
print_r($all_results); 

La variable $ all_results sera un tableau multidimensionnel avec tous les enregistrements.

+0

S'il utilisait PDO je parie qu'il utiliserait des méthodes PDO, pas 'mysql_ *' ;-) – zerkms

2

Vous pouvez créer votre propre fonction comme mysql_fetch_array_complete() et imaginez que c'est ;-) builtin

1

Vous pouvez toujours écrire votre propre fonction faites ceci, mais cela conduirait souvent à une itération inutile à travers le jeu de résultats (une fois quand vous appelez votre fonction, une autre fois quand vous utilisez réellement le tableau résultant).

Depuis que vous êtes en PHP5, vous pouvez créer une classe de résultats de base de données qui implémente l'interface Iterator. Ensuite, vous pouvez utiliser votre classe dans les boucles foreach() et bénéficier d'une grande facilité d'utilisation dans un tableau.

+0

Quelle est la différence majeure entre 'while' +' mysql_fetch_array' et 'foreach' +' custom class'? – zerkms

+0

Avec ce dernier, vous pouvez utiliser foreach sur le résultat et ne pas avoir à aller chercher ligne par ligne. – Franz

Questions connexes