9
votes

Comment stocker tous les résultats d'une requête SQL dans une matrice multidimensionnelle?

Bonjour tout ce que je veux convertir mon tableau en un autre type de tableau, plz m'aider à sortir. je m Utilisation de cette

Array ( [0] => Array ( [user_id] => 250 [name] => a [age] => sfsf [pic_path] => ) [1] => Array ( [user_id] => 251 [name] => b [age] => sfsfs [pic_path] => ) )


0 commentaires

5 Réponses :


20
votes
$data = array(); // create a variable to hold the information
while (($row = mysql_fetch_array($result, MYSQL_ASSOC)) !== false){
  $data[] = $row; // add the row in to the results (data) array
}

print_r($data); // print result
Update Feb '17 Now that it's 2017, it's advised you use PDOs over mysql_*. A lot safer and can return this natively with fetchAll (as shown in `TrexXx's answer).

4 commentaires

@umar: Pas un problème, content d'aider.


Je prétends que le "! == faux" n'est pas nécessaire. Est-ce une faute de frappe?


@ Mat.Viguier devrait le garder car il renvoie des résultats extraites. Si le tableau est vide, c'est aussi FALSY sans être une erreur. Mais def déplace vers PDO, cette API est obsolète et supprimée dans PHP 7


@Bradchristie, si FALSE, $ Les données sont retournées vides. Si vide, $ les données sont retournées vides. Suis-je fausse myslef avec ça? En fait, vous êtes vrai avec PDO. Alors que l'OP fonctionne sur MySQL, je travaille avec MSSQL et PDO semble être une douleur maintenant ...



1
votes
$rows = array();
while ($result = mysql_fetch_array($result, MYSQL_ASSOC)) {       
    $rows[] = $result;
}

0 commentaires

1
votes

Vous ne pouvez pas obtenir un tableau multidimensionnel de la recherche de votre requête SQL dans une seule commande. Vous devez répéter la fonction mysql_fetch_array code> une fois par ligne de résultat SQL par SQL.

Vous pouvez également utiliser mysql_fetch_assoc code> pour obtenir les résultats en tant que tableau associatif. P>

Pour atteindre votre objectif: P>

$num = mysql_num_rows($result);
for ($i = 0; $i < $num; $i++)
{
    $myArray[] = mysql_fetch_assoc($result);
}


0 commentaires

2
votes

Si vous devez stocker toutes les lignes retournées par la requête dans un tableau, essayez ceci:

$result = array(); 

while ( $row = mysql_fetch_array($result, MYSQL_ASSOC) ){
    $result[] = $row
}


0 commentaires