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.
comment faire pour obtenir le résultat d'une requête MySQL sous forme d'un tableau à 2 dimensions ? 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.
Je vois très facilement l'inverse, à savoir [ligne][champ]: $ton_tableau[] = mysql_fetch_row($requete);
-- 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:
Bonjour,
comment faire pour obtenir le résultat d'une requête MySQL sous forme
d'un tableau à 2 dimensions ?
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.
Je vois très facilement l'inverse, à savoir [ligne][champ]:
$ton_tableau[] = mysql_fetch_row($requete);
--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.c-p-f.net
comment faire pour obtenir le résultat d'une requête MySQL sous forme d'un tableau à 2 dimensions ? 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.
Je vois très facilement l'inverse, à savoir [ligne][champ]: $ton_tableau[] = mysql_fetch_row($requete);
-- Découvrez Original War: http://www.original-war.org Humour: http://www.chatfou.com Tchattez en liberté: http://www.c-p-f.net
loufoque
Olivier Masson a dit le 01/03/2005 à 13:15:
comment faire pour obtenir le résultat d'une requête MySQL sous forme d'un tableau à 2 dimensions ?
Quel est l'intérêt, à part prendre inutilement de la place en mémoire ? Comme une requête peut fournir une grande quantité de lignes, il vaut mieux traiter ligne par ligne et de faire quelquechose de progressif, pour éviter de tout mettre en mémoire d'un coup (d'autant plus que la plupart des SGBD bufferisent déjà par défaut). Après bon c'est vrai que si il y a peu de lignes (moins de 30) et que les données sont courtes, ça ne gêne pas vraiment.
Le mieux est sûrement d'utiliser un itérateur, si on dispose de php5.
Olivier Masson a dit le 01/03/2005 à 13:15:
comment faire pour obtenir le résultat d'une requête MySQL sous forme
d'un tableau à 2 dimensions ?
Quel est l'intérêt, à part prendre inutilement de la place en mémoire ?
Comme une requête peut fournir une grande quantité de lignes, il vaut
mieux traiter ligne par ligne et de faire quelquechose de progressif,
pour éviter de tout mettre en mémoire d'un coup (d'autant plus que la
plupart des SGBD bufferisent déjà par défaut).
Après bon c'est vrai que si il y a peu de lignes (moins de 30) et que
les données sont courtes, ça ne gêne pas vraiment.
Le mieux est sûrement d'utiliser un itérateur, si on dispose de php5.
comment faire pour obtenir le résultat d'une requête MySQL sous forme d'un tableau à 2 dimensions ?
Quel est l'intérêt, à part prendre inutilement de la place en mémoire ? Comme une requête peut fournir une grande quantité de lignes, il vaut mieux traiter ligne par ligne et de faire quelquechose de progressif, pour éviter de tout mettre en mémoire d'un coup (d'autant plus que la plupart des SGBD bufferisent déjà par défaut). Après bon c'est vrai que si il y a peu de lignes (moins de 30) et que les données sont courtes, ça ne gêne pas vraiment.
Le mieux est sûrement d'utiliser un itérateur, si on dispose de php5.
Olivier Masson
Olivier Masson wrote:
Bonjour,
comment faire pour obtenir le résultat d'une requête MySQL sous forme d'un tableau à 2 dimensions ? 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.
Je vois très facilement l'inverse, à savoir [ligne][champ]: $ton_tableau[] = mysql_fetch_row($requete);
Comme avant, ça ne me donne que la ligne 0 : Array ( [0] => Array ( [0] => 2001-09-09 [1] => Benjamin43 [2] => b [3] => m [4] => 92510 ) )
Olivier Masson wrote:
Bonjour,
comment faire pour obtenir le résultat d'une requête MySQL sous forme
d'un tableau à 2 dimensions ?
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.
Je vois très facilement l'inverse, à savoir [ligne][champ]:
$ton_tableau[] = mysql_fetch_row($requete);
Comme avant, ça ne me donne que la ligne 0 :
Array ( [0] => Array ( [0] => 2001-09-09 [1] => Benjamin43 [2] => b [3]
=> m [4] => 92510 ) )
comment faire pour obtenir le résultat d'une requête MySQL sous forme d'un tableau à 2 dimensions ? 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.
Je vois très facilement l'inverse, à savoir [ligne][champ]: $ton_tableau[] = mysql_fetch_row($requete);
Comme avant, ça ne me donne que la ligne 0 : Array ( [0] => Array ( [0] => 2001-09-09 [1] => Benjamin43 [2] => b [3] => m [4] => 92510 ) )
Olivier Masson
Olivier Masson a dit le 01/03/2005 à 13:15:
comment faire pour obtenir le résultat d'une requête MySQL sous forme d'un tableau à 2 dimensions ?
Quel est l'intérêt, à part prendre inutilement de la place en mémoire ? Comme une requête peut fournir une grande quantité de lignes, il vaut mieux traiter ligne par ligne et de faire quelquechose de progressif, pour éviter de tout mettre en mémoire d'un coup (d'autant plus que la plupart des SGBD bufferisent déjà par défaut). Après bon c'est vrai que si il y a peu de lignes (moins de 30) et que les données sont courtes, ça ne gêne pas vraiment.
Le mieux est sûrement d'utiliser un itérateur, si on dispose de php5.
En fait je les prends justement 30 par 30 dans la base (j'affiche un tableau de résultats). Mais déjà, est-ce tout simplement possible de récupérer l'intégralité du résultats en une requête php -> mysql ?
Olivier Masson a dit le 01/03/2005 à 13:15:
comment faire pour obtenir le résultat d'une requête MySQL sous forme
d'un tableau à 2 dimensions ?
Quel est l'intérêt, à part prendre inutilement de la place en mémoire ?
Comme une requête peut fournir une grande quantité de lignes, il vaut
mieux traiter ligne par ligne et de faire quelquechose de progressif,
pour éviter de tout mettre en mémoire d'un coup (d'autant plus que la
plupart des SGBD bufferisent déjà par défaut).
Après bon c'est vrai que si il y a peu de lignes (moins de 30) et que
les données sont courtes, ça ne gêne pas vraiment.
Le mieux est sûrement d'utiliser un itérateur, si on dispose de php5.
En fait je les prends justement 30 par 30 dans la base (j'affiche un
tableau de résultats).
Mais déjà, est-ce tout simplement possible de récupérer l'intégralité du
résultats en une requête php -> mysql ?
comment faire pour obtenir le résultat d'une requête MySQL sous forme d'un tableau à 2 dimensions ?
Quel est l'intérêt, à part prendre inutilement de la place en mémoire ? Comme une requête peut fournir une grande quantité de lignes, il vaut mieux traiter ligne par ligne et de faire quelquechose de progressif, pour éviter de tout mettre en mémoire d'un coup (d'autant plus que la plupart des SGBD bufferisent déjà par défaut). Après bon c'est vrai que si il y a peu de lignes (moins de 30) et que les données sont courtes, ça ne gêne pas vraiment.
Le mieux est sûrement d'utiliser un itérateur, si on dispose de php5.
En fait je les prends justement 30 par 30 dans la base (j'affiche un tableau de résultats). Mais déjà, est-ce tout simplement possible de récupérer l'intégralité du résultats en une requête php -> mysql ?
loufoque
loufoque a dit le 01/03/2005 à 15:50:
il vaut mieux traiter ligne par ligne et de faire quelquechose de progressif,
Errata: [...] et faire quelquechose [...]
Sinon, pour faire ce que vous souhaitez, c'est extremement simple. $array = array(); while($row = mysql_fetch_array($req)) { $array[] = $row; }
loufoque a dit le 01/03/2005 à 15:50:
il vaut
mieux traiter ligne par ligne et de faire quelquechose de progressif,
Errata:
[...] et faire quelquechose [...]
Sinon, pour faire ce que vous souhaitez, c'est extremement simple.
$array = array();
while($row = mysql_fetch_array($req))
{
$array[] = $row;
}
Oui, effectivement, j'ai zappé une étape... Essaye donc: for ($i=0; $i<mysql_num_rows($requete); $i++) { $ton_tableau[] = mysql_fetch_row($requete); }
Et la, tu devrais obtenir ce qu'il faut alors que dans le cas précédent, tu n'avais que la première ligne (je pensais que tu comprendrais que ça devait s'insérer dans une boucle de lecture).
@++
-- 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:
Je vois très facilement l'inverse, à savoir [ligne][champ]:
$ton_tableau[] = mysql_fetch_row($requete);
Comme avant, ça ne me donne que la ligne 0 :
Oui, effectivement, j'ai zappé une étape...
Essaye donc:
for ($i=0; $i<mysql_num_rows($requete); $i++) {
$ton_tableau[] = mysql_fetch_row($requete);
}
Et la, tu devrais obtenir ce qu'il faut alors que dans le cas précédent,
tu n'avais que la première ligne (je pensais que tu comprendrais que ça
devait s'insérer dans une boucle de lecture).
@++
--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.c-p-f.net
Oui, effectivement, j'ai zappé une étape... Essaye donc: for ($i=0; $i<mysql_num_rows($requete); $i++) { $ton_tableau[] = mysql_fetch_row($requete); }
Et la, tu devrais obtenir ce qu'il faut alors que dans le cas précédent, tu n'avais que la première ligne (je pensais que tu comprendrais que ça devait s'insérer dans une boucle de lecture).
@++
-- Découvrez Original War: http://www.original-war.org Humour: http://www.chatfou.com Tchattez en liberté: http://www.c-p-f.net
On a pas vraiment besoin de mysql_num_rows pour réaliser une itération, mysql_fetch_row renverra false quand il n'y a plus de résultat. En plus, ici, mysql_num_rows est appelée à chaque itération.
On a pas vraiment besoin de mysql_num_rows pour réaliser une itération,
mysql_fetch_row renverra false quand il n'y a plus de résultat.
En plus, ici, mysql_num_rows est appelée à chaque itération.
On a pas vraiment besoin de mysql_num_rows pour réaliser une itération, mysql_fetch_row renverra false quand il n'y a plus de résultat. En plus, ici, mysql_num_rows est appelée à chaque itération.
Olivier Masson
loufoque a dit le 01/03/2005 à 15:50:
il vaut mieux traiter ligne par ligne et de faire quelquechose de progressif,
Errata: [...] et faire quelquechose [...]
Sinon, pour faire ce que vous souhaitez, c'est extremement simple. $array = array(); while($row = mysql_fetch_array($req)) { $array[] = $row; }
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. Donc votre réponse implicite est non.
loufoque a dit le 01/03/2005 à 15:50:
il vaut mieux traiter ligne par ligne et de faire quelquechose de
progressif,
Errata:
[...] et faire quelquechose [...]
Sinon, pour faire ce que vous souhaitez, c'est extremement simple.
$array = array();
while($row = mysql_fetch_array($req))
{
$array[] = $row;
}
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.
Donc votre réponse implicite est non.
il vaut mieux traiter ligne par ligne et de faire quelquechose de progressif,
Errata: [...] et faire quelquechose [...]
Sinon, pour faire ce que vous souhaitez, c'est extremement simple. $array = array(); while($row = mysql_fetch_array($req)) { $array[] = $row; }
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. Donc votre réponse implicite est non.
CrazyCat
loufoque wrote:
On a pas vraiment besoin de mysql_num_rows pour réaliser une itération, mysql_fetch_row renverra false quand il n'y a plus de résultat. En plus, ici, mysql_num_rows est appelée à chaque itération.
Oui, effectivement, mais j'ai vite fait ça et sans réfléchir. Mais bon, on s'est compris: le principe était bon: remplir une ligne du tableau pour chaque ligne renvoyée par la requète.
-- Découvrez Original War: http://www.original-war.org Humour: http://www.chatfou.com Tchattez en liberté: http://www.c-p-f.net
loufoque wrote:
On a pas vraiment besoin de mysql_num_rows pour réaliser une itération,
mysql_fetch_row renverra false quand il n'y a plus de résultat.
En plus, ici, mysql_num_rows est appelée à chaque itération.
Oui, effectivement, mais j'ai vite fait ça et sans réfléchir.
Mais bon, on s'est compris: le principe était bon: remplir une ligne du
tableau pour chaque ligne renvoyée par la requète.
--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.c-p-f.net
On a pas vraiment besoin de mysql_num_rows pour réaliser une itération, mysql_fetch_row renverra false quand il n'y a plus de résultat. En plus, ici, mysql_num_rows est appelée à chaque itération.
Oui, effectivement, mais j'ai vite fait ça et sans réfléchir. Mais bon, on s'est compris: le principe était bon: remplir une ligne du tableau pour chaque ligne renvoyée par la requète.
-- Découvrez Original War: http://www.original-war.org Humour: http://www.chatfou.com Tchattez en liberté: http://www.c-p-f.net
loufoque
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.
Donc votre réponse implicite est non.
Effectivement, une telle fonction n'existe pas.
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.
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.