OVH Cloud OVH Cloud

resultat mysql_query dans un tableau 2 dimensions

16 réponses
Avatar
Olivier Masson
Bonjour,

comment faire pour obtenir le résultat d'une requête MySQL sous forme
d'un tableau à 2 dimensions ?

Actuellement, je fais mon $a=mysql_query puis un mysql_fetch_row($a) (ou
array ou object) mais j'obtiens le résultat ligne par ligne.

Or je voulais savoir si chaque appel à ce fetch faisait une requête
MySQL où si c'était un traitement interne à PHP et, d'autre part, s'il
n'y avait pas un moyen d'obtenir, comme je le disais au début, un
tableau à 2 dimensions [nom_du_champ][ligne] comportant tout le résultat.

Merci.

6 réponses

1 2
Avatar
Marc
Bonjour,

comment faire pour obtenir le résultat d'une requête MySQL sous forme
d'un tableau à 2 dimensions ?



ce que tu recherches, c'est tres probablement :

http://fr2.php.net/manual/en/function.mysql-fetch-array.php

Avatar
Olivier Masson

Bonjour,

comment faire pour obtenir le résultat d'une requête MySQL sous forme
d'un tableau à 2 dimensions ?



ce que tu recherches, c'est tres probablement :

http://fr2.php.net/manual/en/function.mysql-fetch-array.php


non, malheureusement ça fonctionne sur le même principe que
fetch_object, fetch_row...


Avatar
Olivier Masson
Olivier Masson a dit le 01/03/2005 à 23:07:

Vous m'avez mal compris : je sais faire une boucle :o)
Ce que je souhaitais savoir c'est si c'était possible en une seule
commande.



C'est quoi une commande ? Une fonction native du pilote ?
De toutes façons c'est un pilote client, qui discute avec le serveur via
socket. Il envoie des lignes et en récupère, c'est tout.
Après que ce soit le code C ou le code PHP qui génère le tableau à deux
dimensions, je ne pense pas que ça change grand chose.



Ce qui me génait, comme je le disais dans mon post initial, c'est
d'appeler mysql_fetch_row à chaque ligne et donc de faire appel à MySQL
à chaque fois.
Je ne sais pas comme cela fonctionne mais instinctivement, j'aurais
préféré que PHP demande *tout* le résultat plutôt que ligne par ligne.
Mais si c'est fait comme ça, c'est surement que ça ne pose aucun
problème d'optimisation.


Avatar
Frederic Bouchery
Ce qui me génait, comme je le disais dans mon post initial, c'est
d'appeler mysql_fetch_row à chaque ligne et donc de faire appel à MySQL
à chaque fois.
Je ne sais pas comme cela fonctionne mais instinctivement, j'aurais
préféré que PHP demande *tout* le résultat plutôt que ligne par ligne.
Mais si c'est fait comme ça, c'est surement que ça ne pose aucun
problème d'optimisation.


Non, en effet, il n'y a pas de problème d'optimisation, et dans tous les
autres technos, le principe est le même.

Par contre, il ne faudrait pas utiliser "mysql_fetch_row", mais
"mysql_fetch_assoc".

Fred.

Avatar
CrazyCat
Olivier Masson wrote:
Ce qui me génait, comme je le disais dans mon post initial, c'est
d'appeler mysql_fetch_row à chaque ligne et donc de faire appel à MySQL
à chaque fois.
Je ne sais pas comme cela fonctionne mais instinctivement, j'aurais
préféré que PHP demande *tout* le résultat plutôt que ligne par ligne.
Mais si c'est fait comme ça, c'est surement que ça ne pose aucun
problème d'optimisation.


J'ai peur que toute requète, dans n'importe quel langage et avec
n'importe quelle base de données, te ressorte un recordset composé de
lignes qu'il faut parcourir.
D'un autre coté, je ne suis pas sur qu'une fois le recordset généré, tu
appelle réellement mysql... tu utilises bien des composants php/mysql
pour lire le recordset, mais quant à la connexion à la base???

--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.c-p-f.net

Avatar
ikaze
Est-ce que cela peut aider ?

http://ikaze.free.fr/logi/logiciels.php
puis Script PHP
http://ikaze.free.fr/index.php?page=script_php1

Le script date un peu, de nouvelles versions sont faites
mais pas mises en page. ;-)

Depuis la version 4 du PHP, il faut rajouter :

mysql_fetch_array($result,MSQL_ASSOC)

Cela permet d'obtenir un tableau à deux dimensions, sans doublon à
l'intérieur du tableau !!!
On peut l'utiliser sous forme d'index ou de nom associé.

--
@+
Site : http://ikaze.free.fr/index.html
(Portail - Galeries d'Arts, photo, ordi, i-News, FAQ, PHP, Flash, Forum,
...)


"Olivier Masson" a écrit dans le message
news: 42245280$0$31872$
Bonjour,

comment faire pour obtenir le résultat d'une requête MySQL sous forme
d'un tableau à 2 dimensions ?

Actuellement, je fais mon $a=mysql_query puis un mysql_fetch_row($a) (ou
array ou object) mais j'obtiens le résultat ligne par ligne.

Or je voulais savoir si chaque appel à ce fetch faisait une requête
MySQL où si c'était un traitement interne à PHP et, d'autre part, s'il
n'y avait pas un moyen d'obtenir, comme je le disais au début, un
tableau à 2 dimensions [nom_du_champ][ligne] comportant tout le résultat.

Merci.


1 2