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.
non, malheureusement ça fonctionne sur le même principe que fetch_object, fetch_row...
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.
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.
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.
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.
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".
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.
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
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
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
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é.
"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.
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é.
"Olivier Masson" <sisemen_bouchon_@laposte.net> a écrit dans le message
news: 42245280$0$31872$636a15ce@news.free.fr...
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.
"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.