Mysql_fetch pour un tableau multi dimmensionel

Résolu
Utilisateur anonyme - 16 août 2011 à 21:09
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 - 18 août 2011 à 11:40
Hello,

On sait que :

mysql_fetch_assoc : Lit une ligne de résultat MySQL dans un tableau associatif
mysql_fetch_row : Retourne une ligne de résultat MySQL sous la forme d'un tableau
mysql_fetch_array : Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux

Mais est-il possible de retourner un résultat mysql_fetch dans un tableau multi dimensionnel ?

Actuellement je fait :

$data = array();
while ($row = mysql_fetch_assoc($recordset)) {
     $data[] = $row;
}


Y a t'il une autre méthode plus simple ?

Merci

Belle soirée,

A++

Fabien Schenkels (alias fabienfs)

10 réponses

kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
17 août 2011 à 16:50
Salut,

Quel problème cela pose t-il au juste ?
mysql_fetch_* retourne la ligne courante, il est donc obligatoire de déplacer le pointeur pour parcourir les résultats.

Les fonctions mysql_* sont obsolètes, du devrais passer à mysqli, ou mieux, PDO.
D'ailleurs ce dernier te permet de parvenir très facilement à ton résultat avec la méthode fetchAll()

Cordialement,

Kohntark -
3
dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012
17 août 2011 à 13:50
Salut,
ça dépend ce que tu veux y mettre.
0
Hello,

Imaginons, j'ai une table membre qui contient id, prenom, nom, age et email.
J'aimerais avec un mysql_fetch sortir un tableau multi dimensionnel comme ceci :

Array
(
    [0] => Array
        (
            [id] => 1
            [prenom] => john
            [nom] => doe
            [age] => 25
            [email] => john@doe.com
        )
 
    [1] => Array
        (
            [id] => 2
            [prenom] => john
            [nom] => doe
            [age] => 25
            [email] => john@doe.com
        )
 
    [2] => Array
        (
            [id] => 3
            [prenom] => john
            [nom] => doe
            [age] => 25
            [email] => john@doe.com
        )
 
    [3] => Array
        (
            [id] => 4
            [prenom] => john
            [nom] => doe
            [age] => 25
            [email] => john@doe.com
        )
 
)


Comment faire ? Suis-je obligé d'utiliser ma première méthode ? Ou existe-t-il un mysql_fetch_??? qui peut me sortir le même résultat ?

Merci

A++
0
dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012
17 août 2011 à 17:11
Salut,

kohntark, tu viens de m'apprendre que les fonctions mysql sont obsolètes.
Bien que si une personne comme moi, actif dans le domaine du web, je ne l'apprend que mtn, c qu'elles fonctionneront encore quelques temps. D'ailleurs je l'espere, je viens de terminer un site en utilisant que c fonctions. En tout cas mtn, je vais prendre cela en considération pour mes sites futures.
Sinon pour fabienfs, comme dit kohntark, si tu commences un site mieux vaut aprrendre l'api DPO, mais sinon :
$tab = array()
while($data = mysql_fetch_array($result)){
    $sousTab array( 'id'> $data['id'],
                      'prenom' => $data['prenom'],
                     ect.................);
    $tab[] = $soustab;
}

Je pense que ça fonctionne comme ça sinon je pense qu'il existe une fonction array_push qui te permmettra d'arriver au résultat

Enjoy
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
17 août 2011 à 17:33
$tab = array()
while($data = mysql_fetch_array($result)){
    $sousTab array( 'id'> $data['id'],
                      'prenom' => $data['prenom'],
                     ect.................);
    $tab[] = $soustab;
}

Ca revient au même que le code du premier message de Fabienfs, ... sauf que c'est plus lourd


Bien que si une personne comme moi, actif dans le domaine du web, je ne l'apprend que mtn, c qu'elles fonctionneront encore quelques temps. D'ailleurs je l'espere, je viens de terminer un site en utilisant que c fonctions.


Ca fait un bout de temps déjà que ces fonctions ne sont plus recommandées.
Sauf à programmer encore avec des ancêtres de PHP il faut les proscrire.
Sans doute fonctionneront elles encore quelques temps, il y a tellement de codes qui ont été développés avec elles. C'est un peu le même problème qu'avec les magic quotes, dur dur pour les développeurs de PHP de les supprimer. Mais à trop attendre on se retrouve avec des tonnes de scripts qui ne fonctionnent plus.
Et puis au delà de ça c'est tout de même dommage de se passer à côté de la puissance et des possibilités / flexibilité de mysqli ou PDO, qui sont, contrairement au premier, toujours en développement.

Cordialement,


Kohntark -
0
Hello,

Merci pour vos réponses. Si j'ai bien compris, avec mysql_* on est obligé de tout lister avec une while comme je l'ai fait.

Je vais cependant me pencher aussi sur PDO dont vous parlez, ça m'intéresse :-)

Merci à vous deux.

Belle soirée,

A++
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
17 août 2011 à 17:54
Il y a même un exemple dans la doc qui montre par ailleurs l'utilisation des requêtes préparées, très utiles dans de nombreux cas.


Cordialement,


Kohntark -
0
dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012
17 août 2011 à 18:59
Yop,
J'ai lu trop vite lu le commentaire sans vraiment regarder le code de fabienfs, effectivement, la boucle fetch_assoc fournit un tableau associatif, donc mon code est plus lourd ( je devais partir de mon boulot, du coup, j'ai trop vite fait ça , sorry fabienfs).


C'est un peu le même problème qu'avec les magic quotes, dur dur pour les développeurs de PHP de les supprimer.


Heureusemment, j'ai tout de suite travaillé avec les addslashes (en fait, contre mon gré, d'ailleurs si tu as quelque chose de mieux que ce long mot accompagné de son stripslashes, je suis preneur ^^)


Et puis au delà de ça c'est tout de même dommage de se passer à côté de la puissance et des possibilités / flexibilité de mysqli ou PDO, qui sont, contrairement au premier, toujours en développement.


Content d'aider dans un forum, pour finir, j'y apprend plein de choses

Cordialement
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
18 août 2011 à 04:56
Ca fait un bout de temps déjà que ces fonctions ne sont plus recommandées.
Sauf à programmer encore avec des ancêtres de PHP il faut les proscrire.
Sans doute fonctionneront elles encore quelques temps, il y a tellement de codes qui ont été développés avec elles. C'est un peu le même problème qu'avec les magic quotes, dur dur pour les développeurs de PHP de les supprimer. Mais à trop attendre on se retrouve avec des tonnes de scripts qui ne fonctionnent plus.

J'ajouterai ou plutôt pour aller dans le même sens : que c'est surtout la faute au trop nombreux tutos sur le net qui ne traitent quasiment que de ces fonctions ou plutôt qui datent de l'époque où il n'y avait pas de PDO et comparses.
Après concernant les développeurs il y a surtout un manque de bonne volonté (flagrant chez certains) d'évolution.

Toute proportion gardé, l'objet c'est tellement plus beau et plus pratique




______________________________________________________________________
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
18 août 2011 à 11:40
Salut,

Toute proportion gardé, l'objet c'est tellement plus beau et plus pratique

<troll>La programmation par objets est une idée exceptionnellement mauvaise qui ne pouvait naître qu'en Californie.</troll>
0
Rejoignez-nous