Tableau et Fetch_array

Tableau et Fetch_array - PHP - Programmation

Marsh Posté le 12-05-2003 à 14:12:53    

Salut , afin de classer mes utlisateurs suivant leur nombre de commenbtaires sur mon site , j'ai crée un tableau a l'intérieur de ma requete sql ...
 
Malheureusement , ce script m'affiche feuille blanche a chaque fois...
 
QQ peut m'aider ?

Code :
  1. <?
  2. $nmembres = mysql_query("SELECT pseudo FROM membres" );          // 3  
  3. while($row = mysql_fetch_array($nmembres))
  4. {
  5. $req1 = mysql_query("SELECT * FROM commentaires where nom='$data[pseudo]'" );          // 3  
  6. $res1 = mysql_numrows($req1); 
  7. $req2 = mysql_query("SELECT * FROM ne_comments where nom='$data[pseudo]'" );          // 3  
  8. $res2 = mysql_numrows($req2);
  9. $total = $res1+$res2;
  10. $tableau[$data[pseudo]] = "$total";
  11. echo "$tableau[Coconutes4]";
  12. }
  13. ?>

Reply

Marsh Posté le 12-05-2003 à 14:12:53   

Reply

Marsh Posté le 12-05-2003 à 14:24:09    

coconutes4 a écrit :

Salut , afin de classer mes utlisateurs suivant leur nombre de commenbtaires sur mon site , j'ai crée un tableau a l'intérieur de ma requete sql ...
 
Malheureusement , ce script m'affiche feuille blanche a chaque fois...
 
QQ peut m'aider ?

Code :
  1. <?
  2. $nmembres = mysql_query("SELECT pseudo FROM membres" );          // 3  
  3. while( $data = mysql_fetch_array($nmembres))
  4. {
  5. $req1 = mysql_query("SELECT * FROM commentaires where nom='$data[pseudo]'" );          // 3  
  6. $res1 = mysql_numrows($req1); 
  7. $req2 = mysql_query("SELECT * FROM ne_comments where nom='$data[pseudo]'" );          // 3  
  8. $res2 = mysql_numrows($req2);
  9. $total = $res1+$res2;
  10. $tableau[$data[pseudo]] = "$total";
  11. echo "$tableau[Coconutes4]";
  12. }
  13. ?>




 
et comme ça?
EDIT : vu que les balises marchent pas dans [cpp], essaye avec $data = mysql_fetch_array(... plutôt


Message édité par Rasta Knight le 12-05-2003 à 14:25:07

---------------
Le tout c'est d'y croire! DaBZHWDT site : www.setibzh.com
Reply

Marsh Posté le 12-05-2003 à 14:33:09    

ça serait pas plus simple de faire une jointure ?
 

Code :
  1. SELECT
  2. membres.pseudo,
  3. commentaires.nom
  4. FROM membres
  5. LEFT JOIN commentaires ON commentaires.nom = membres.pseudo
  6. LEFT JOIN ne_comments ON ne_comments.nom = membres.pseudo


 
fais gaffe d'aliaser tes champs si plusieurs portent le même nom


---------------
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 12-05-2003 à 14:38:57    

Ouarg Rasta , quel con suisje;)
Ca marche:)
 
Heu Sh@rdar  
je ne connaissais pas :(
Tu peu m'expiquer plus en profondeur ?;)
 
En fait j'ai choisit les tableaux , car je veut classer les pseudo dans l'ordre de leur $total...
 
 
Mais je ne sais pas qu'elle fonction utlisé ...
 
 
Key ?

Reply

Marsh Posté le 12-05-2003 à 14:47:06    

plutôt que de faire des requêtes en boucle (c'est lourd) tu jointes pour récupérer toutes les infos sur une ligne avec une seule requête
 
je t'ai filé un exemple simple pour récupérer les champs des 3 tables ou le pseudo est le même (copier coller dans phpmyadmin i tu veux voir le résultat par exemple)
 
tu peux la modifier pour ajouter un comptage etc.. (avec COUNT() et un GROUP BY (pseudo))
 
tu vas un peu te galérer si tu connais rien au SQL mais au final ça te resservira de nombreuses fois.
 
je vais pas pouvoir plus t'aider sans connaitre la structure des tables et ce que tu veux faire exactement.


---------------
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 12-05-2003 à 14:57:43    

NOn je sais me servir d'sql , mais d'habitude j'utlisais directement select * from $table,$table2 where champs1.$table1=champs1$table2
...
 
Mais oui c'est pas bête ca m'éviterais tout ces requetes , je vais voir ça

Reply

Marsh Posté le 12-05-2003 à 15:00:11    

qq remarques :
- doù tires tu ton $data ?
- qd on utilise des clés dans un tableau, il faut les mettre entre " " ou utiliser $tab[$pseudo].
- c'est mysql_num_rows et pas mysql_numrows (oups g un doute là, à vérifier)
- echo "$tableau[coconuts4]"; ne fctera pas, echo $tableau["coconuts4"];


---------------
...oups kernel error...
Reply

Marsh Posté le 12-05-2003 à 15:02:09    

qq remarques :
- doù tires tu ton $data ?
- qd on utilise des clés dans un tableau, il faut les mettre entre " " ou utiliser $tab[$pseudo].
- c'est mysql_num_rows et pas mysql_numrows (oups g un doute là, à vérifier)
- echo "$tableau[coconuts4]"; ne fctera pas, echo $tableau["coconuts4"];
 
 
Mon $data , mais de ma boucle while;)
Pas forcément pour les clés...
 
Et mysql_numrows marche^^:)
 
pis les deux types d'echo reviennent au même;)
 
je pourrais même faire un <?=$tableau[coconutes4]?>
sur ma page inclus .

Reply

Marsh Posté le 12-05-2003 à 15:07:59    

Sh@rdar a écrit :

ça serait pas plus simple de faire une jointure ?
 

Code :
  1. SELECT
  2. membres.pseudo,
  3. commentaires.nom
  4. FROM membres
  5. LEFT JOIN commentaires ON commentaires.nom = membres.pseudo
  6. LEFT JOIN ne_comments ON ne_comments.nom = membres.pseudo


 
fais gaffe d'aliaser tes champs si plusieurs portent le même nom

les jointures ne marchent pas avec mysql me semble...


---------------
XBL : ESN3S | GGPO (3rd strike) : ESN | PSN : Huitxilopochti
Reply

Marsh Posté le 12-05-2003 à 15:21:31    

elles fonctionnent comme beaucoup d'autres fonctions


---------------
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 12-05-2003 à 15:21:31   

Reply

Marsh Posté le 12-05-2003 à 15:41:00    

Sh@rdar a écrit :

elles fonctionnent comme beaucoup d'autres fonctions

exact, je m a trompé, confondu avec les subselect [:pudukukilucru]


---------------
XBL : ESN3S | GGPO (3rd strike) : ESN | PSN : Huitxilopochti
Reply

Marsh Posté le 12-05-2003 à 15:47:56    

coconutes4 a écrit :


 
Mon $data , mais de ma boucle while;)
Pas forcément pour les clés...
 
Et mysql_numrows marche^^:)
 
pis les deux types d'echo reviennent au même;)
 
je pourrais même faire un <?=$tableau[coconutes4]?>
sur ma page inclus .


-je ne vois nulle part de $data=, je vois un $row= mysql_fetch_array ; ça devrait être $data=mysql_fetch_array... non ?
- pour les clés, je suis d'accord, mais c'est plus propre. Si tu ne mets pas de "", il peut considérer les valeurs comme des constantes (ça peut créer des erreurs).


---------------
...oups kernel error...
Reply

Marsh Posté le 12-05-2003 à 17:09:39    

Oki je prend note et pour le $row
j'ai déja modifier grace a je sais plus qui...

Reply

Sujets relatifs:

Leave a Replay

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