Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1140 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°228683
xkamui
Their Destiny Was Foreordained
Posté le 16-10-2002 à 13:50:15  profilanswer
 

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
mood
Publicité
Posté le 16-10-2002 à 13:50:15  profilanswer
 

n°228729
xkamui
Their Destiny Was Foreordained
Posté le 16-10-2002 à 14:54:23  profilanswer
 

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
n°228731
Sh@rdar
Ex-PhPéteur
Posté le 16-10-2002 à 14:57:30  profilanswer
 

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
n°228732
xkamui
Their Destiny Was Foreordained
Posté le 16-10-2002 à 15:01:41  profilanswer
 

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
n°228754
Sh@rdar
Ex-PhPéteur
Posté le 16-10-2002 à 15:42:59  profilanswer
 

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
n°228801
xkamui
Their Destiny Was Foreordained
Posté le 16-10-2002 à 16:47:39  profilanswer
 

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 ??...

n°228852
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 16-10-2002 à 18:04:22  profilanswer
 

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.
n°228881
Sh@rdar
Ex-PhPéteur
Posté le 16-10-2002 à 18:30:51  profilanswer
 

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
n°229053
xkamui
Their Destiny Was Foreordained
Posté le 16-10-2002 à 22:19:42  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
[JS] Cacher un div par un select [ - Job's Done - ][XHTML] Faire un target="_blank" [ - Job's Done - ]
Est-ce qu'un die effectue un mysql_close() tout seul ?[PHP-MYSQL]Conversion date
[MySQL] Gagner en rapidité en migrant de MySQL 3.23 vers MySQL 4 ?Comment declarer un tableau array a 2 dimension
[Php/MySQL] Pb, pas de retour à la ligne quand je reccupère la BDD ...[PHP/MySQL] Je ne comprends pas ce qui cloche ds mon script...
Plus de sujets relatifs à : Faire un MYSQL_FETCH_ARRAY... [ - Job's Done - ]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR