Faire un MYSQL_FETCH_ARRAY... [ - Job's Done - ]

Faire un MYSQL_FETCH_ARRAY... [ - Job's Done - ] - PHP - Programmation

Marsh Posté le 16-10-2002 à 13:50:15    

c'est possible ??
j'ai fait ça :  

Code :
  1. $I=2;
  2. $Query="SELECT * from matable where monchamp like 'mavariable'";
  3. $Result=MYSQL_QUERY ("$Query" );
  4. While ($Array=MYSQL_FETCH_ARRAY ($Result))
  5. {
  6. echo "
  7. <a href=\"mapage.php?R=mavariable1&SR=$Array[$I]\">$Array[$I]</a> -
  8. ($Query)
  9. ";
  10. $I++;
  11. }


 
dans ce cas là, il ne met qu'une valeur... snifff


Message édité par xkamui le 16-10-2002 à 22:20:11
Reply

Marsh Posté le 16-10-2002 à 13:50:15   

Reply

Marsh Posté le 16-10-2002 à 14:54:23    

mise à jour après un tour sur www.php.net (mysql_fetch_array)
 

Code :
  1. $Query="SELECT * from annonce_srub where SrubRef like '$RubNames[$R]'";
  2.          $Result=MYSQL_QUERY ("$Query" );
  3.          While ($Array=MYSQL_FETCH_ARRAY ($Result, MYSQL_NUM))
  4.           {
  5.           $I++;
  6.           echo "<a href=\"pann.php?R=$R&Sr=$Array[$I]\" class=\"topmenublk\">$Array[$I]</a> - ";
  7.           }


 
il me retourne toujours qu'une seule valeur... $Array[2] mais pas les autres...  :cry:


Message édité par xkamui le 16-10-2002 à 14:55:53
Reply

Marsh Posté le 16-10-2002 à 14:57:30    

hum...
 
tu veux vraiment un lien pour chaque champ  de la table ?  
si oui ça devrait marcher mais saches que comme ton $i = 2 il va seulement te sortir la valeur des champs numéros 2 ou supérieurs
 
t'as une erreur de syntaxe au niveau du echo, ça sécrit plutôt comme ça :

Code :
  1. echo "<a href=\"mapage.php?R=mavariable1&SR=".$Array[$I]."\">".$Array[$I]."</a> - ($Query) ";


 
 pour ton problème de n'avoir qu'une seule ligne : c'est normal puisque le nombre de champs affichés dépend du nombre de ligne retourné par ta requête (1 résultat MySQL => 1 champ affiché même si t'en as plus)
 
EDIT :c'est sacrément tordu ton truc... tu veux faire quoi exactement ?


Message édité par Sh@rdar le 16-10-2002 à 15:00:27

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 16-10-2002 à 15:01:41    

pour le cho du lien, ok, je fait comme ça.
pour le nombre de champs par ligne : 15
seulement les 13 dernier m'intéressent à l'affichage.
en fait, je veux qu'il maffiche, successivement, les 13 champs, sans que j'ai à faire : for ($I=2;$I<1....


Message édité par xkamui le 16-10-2002 à 15:19:10
Reply

Marsh Posté le 16-10-2002 à 15:42:59    

t'as pas trop le choix : soit tu mets tous les champs dans ton echo, soit tu boucles pour les afficher.
 
comme ça c'est impossible, si ta requête retourne que 10 lignes, t'auras que 10 champs..


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 16-10-2002 à 16:47:39    

Sh@rdar a écrit a écrit :

t'as pas trop le choix : soit tu mets tous les champs dans ton echo, soit tu boucles pour les afficher.
 
comme ça c'est impossible, si ta requête retourne que 10 lignes, t'auras que 10 champs..




 
ah bon ??... attend, je crois que je comprend pas..
si j'ai un tablo comme ça :  


+------------------------------------------------------------+
+ id + hello + truc1 + truc2 + truc3 + truc4 + truc5 + truc6 +
+ id + world + truc1 + truc2 + truc3 + truc4 + truc5 + truc6 +
+------------------------------------------------------------+


 
et que je lui dit :  

Code :
  1. $Query="SELECT * from annonce_srub where SrubRef like 'hello'";
  2. $Result=MYSQL_QUERY ("$Query" );
  3. While ($Array=MYSQL_FETCH_ARRAY ($Result, MYSQL_NUM))
  4. {
  5. $I++;
  6. echo "<a href=\"pann.php?R=$R&Sr=".$Array[$I]."\" class=\"topmenublk\">".$Array[$I]."</a> - ";
  7. }


 
$Array[3] n'éxiste pas ??...

Reply

Marsh Posté le 16-10-2002 à 18:04:22    

EUh ba mysql_fetch_array() renvoie un tableau contenant la LIGNE d'un résultat, chaque cellule du tableau contenant la valeur de chaque champ. Donc, si tu veux les 13 dernières lignes uniquement, tu fais :

Code :
  1. $i = 0;
  2. While ($Array=MYSQL_FETCH_ARRAY ($Result))
  3. {
  4. if($i>1) echo "Champ 1 : $array[0] ; Champ 2 : $array[1]"; //etc...
  5. $i++;
  6. }


 
Passke moi, ce que je vois ton dernier code faire, c'est initialiser i à 2 puis écrire dans un <a> la ième colonne de la ligne que ton while() est en train de lire puis incrémenter i :) Donc à moins que tu ne veuilles récupérer qu'un champ et que le numéro de ce champ s'incrémente tous les tours de boucle, ça va pas correspondre à ce que tu veux :D


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 16-10-2002 à 18:30:51    

le problème est pourtant facile à analyser...
 
ta boucle while s'effectue une fois par ligne retournée, elle se fout du nombre de champ à afficher, tu dois reboucler dans le while pour afficher tous les champs, un if ne suffira pas.
 

Code :
  1. while ($val = mysql_fetch_array($Query)) {
  2.   for ($i=2 ; $i < mysql_num_fields($Query)) {
  3.     echo $val[$i] ettoutcequetuveux;
  4.   }
  5. }


 
EDIT la deuxième solution :
 

Code :
  1. $Query = ("SELECT a,b,c,d,e,f,g etc....",$Connect)
  2. while ($val = mysql_fetch_array($Query)) {
  3.   echo $val['a'].$val['b'] etc..;
  4.   }
  5. }


 
en gros tu la première solution revient à boucler la liste des champs de la seconde, mais je le répète y a pas 36 manières d'y arriver..


Message édité par Sh@rdar le 16-10-2002 à 18:34:02

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 16-10-2002 à 22:19:42    

OK? BON? BAH JE VAIS OPTER POUR LE FOR ALORS? MERCI BEAUCOUP §§

Reply

Sujets relatifs:

Leave a Replay

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