php et sql

php et sql - PHP - Programmation

Marsh Posté le 14-03-2007 à 11:05:55    

Un truc il me semble plutot simple mais j'y arrive pas :
 

Code :
  1. $requete = "select * from matable where nom ='toto' ";
  2. $resultat  = pg_query($requete);
  3. $ligne = pg_num_rows($resultat);
  4. $result=pg_fetch_array($resultat);


 
quand je fais un echo $ligne, j'obtiens "3".
 
comment acceder au contenu de la ligne 2 par exemple ?
 
je m'explique, matable contient un champs "age"
je veux par exemple faire un echo de $result['age'] mais par exemple pour l'enregistrement 1 ou 2 ou 3 .
 
???

Reply

Marsh Posté le 14-03-2007 à 11:05:55   

Reply

Marsh Posté le 14-03-2007 à 11:12:49    

quand tu fais un _fetch_array, tu dois placer cette fonction dans une boucle (foreach est trés bien) pour scruter l'ensemble des résultats, sinon elle ne retourne que le 1er résultat de la requête. Eventuellement tu peux replacer les divers résultats dans un tableau récapitulant l'ensemble à l'intérieur de la boucle

Reply

Marsh Posté le 14-03-2007 à 11:24:52    

justement "Eventuellement tu peux replacer les divers résultats dans un tableau récapitulant l'ensemble à l'intérieur de la boucle"  c'est ce qui me bloque...

Reply

Marsh Posté le 14-03-2007 à 11:33:34    

Code :
  1. $tableau=array();
  2. foreach($tableau[]=pg_fetch_array($resultat)) {
  3. echo "Ligne ajoutée";
  4. }


ça devrais fonctionner...

 

sinon

 
Code :
  1. $tableau=array();
  2. while($ligne=pg_fetch_array($resultat)) {
  3. $tableau[]=$ligne;
  4. echo "Ligne ajoutée";
  5. }


fonctionne

Message cité 1 fois
Message édité par chani_t le 14-03-2007 à 11:34:02
Reply

Marsh Posté le 14-03-2007 à 11:46:17    

ok merci , je test. je suis en train de me documenter sur foreach!!!

Reply

Marsh Posté le 14-03-2007 à 19:45:50    

chani_t a écrit :

Code :
  1. $tableau=array();
  2. foreach($tableau[]=pg_fetch_array($resultat)) {
  3. echo "Ligne ajoutée";
  4. }


ça devrais fonctionner...


 
Euh... non. [:figti]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-03-2007 à 08:04:54    


 
Ba j'ai bien dit, devrais :D... j'ai toujours du mal avec le traitement de requête et foreach :D.. Mais je t'en prie, si tu as une soluce avec foreach n'hésite pas ;)

Reply

Marsh Posté le 16-03-2007 à 16:19:45    

pourquoi pas un while ?
 

Code :
  1. $tableau=array();
  2. while ($datarow = pg_fetch_array($resultat))
  3. {
  4.   $tableau[] = $datarow;
  5. }


 
Et après tu peux lire ton tablerau avec un foreach stu veux.

Reply

Marsh Posté le 20-03-2007 à 16:55:53    

oui c'est ce que j'ai fait en fait ;-)!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed