recuperation de variable immediate

recuperation de variable immediate - PHP - Programmation

Marsh Posté le 14-12-2002 à 17:18:25    

Bon le titre est incomprehensible je pense alors voila :
Je voudrait recupéré des variable imediatement pour els ligne juste en dessous sans passé par un while ..
par exemple :
 
  //on cherche le nom du forum  $searfo="select nom from forum_cat";
  $quefo=mysql_query($searfo);
  $arrfo=mysql_fetch_array($quefo);
  //on compte le nombre de thread
  $searth="select count(id) as threa from thread WHERE forum_cat=$arrfo["nom"]";
  $queth=mysql_query($searth);
  $threa=mysql_fetch_row($queth);
  $threaf=$threa[0];

Reply

Marsh Posté le 14-12-2002 à 17:18:25   

Reply

Marsh Posté le 14-12-2002 à 17:19:43    

chacal_one333 a écrit :

Bon le titre est incomprehensible


confidence pour confidence, le message aussi  [:sinclaire]

Reply

Marsh Posté le 14-12-2002 à 17:21:38    

lorill a écrit :


confidence pour confidence, le message aussi  [:sinclaire]  

:(

Reply

Marsh Posté le 14-12-2002 à 17:22:36    

ben je n'arrive pas a recuperer ma variable nom (5 enregistrements) directement pour la replacé dans une autre requete :)
 
c'est mieux la? :p

Reply

Marsh Posté le 14-12-2002 à 17:23:14    

ben je comprends pas trop ce que tu veux faire... récupérer le nombre de thread par forum en une seule fois, c'est ca ?

Reply

Marsh Posté le 14-12-2002 à 17:25:24    

nan selon la category dans laquel ils sont enregistré ;)

Reply

Marsh Posté le 14-12-2002 à 17:27:28    

ouais, enfin ca revient au meme.
 

Code :
  1. select forum_cat, count(id) as threa from thread group by forum_cat


 
ou un truc du genre.

Reply

Marsh Posté le 14-12-2002 à 17:28:45    

ben construit une chaine qui te donnera where bidule in (lalistedesvaleursretournéesparlapremiererequeteséparéespardesvirgules)
 
mais t quand meme obligé de boucler sur le premiere resultset

Reply

Marsh Posté le 14-12-2002 à 17:31:07    

HappyHarry a écrit :

ben construit une chaine qui te donnera where bidule in (lalistedesvaleursretournéesparlapremiererequeteséparéespardesvirgules)


oui mais non, parce qu'il lui faudra le nom de la categorie ET le nombre de topics, et tu peux pas demander un count() et autre chose sans group by

Reply

Marsh Posté le 14-12-2002 à 17:40:51    

Et pourquoi t'as pas le droit de faire un while ?

Reply

Marsh Posté le 14-12-2002 à 17:40:51   

Reply

Marsh Posté le 14-12-2002 à 17:43:49    

Dost67 a écrit :

Et pourquoi t'as pas le droit de faire un while ?


c'est pas qu'il a pas le droit, mais s'il a 10 categories, ca fait 11 requetes... supaire :o

Reply

Marsh Posté le 14-12-2002 à 17:45:27    

lorill a écrit :


c'est pas qu'il a pas le droit, mais s'il a 10 categories, ca fait 11 requetes... supaire :o

:jap:

Reply

Marsh Posté le 14-12-2002 à 17:46:19    

bon et le group by, alors, c'est ce que tu voulais ?

Reply

Marsh Posté le 14-12-2002 à 17:47:43    

Voila le code que j'ai
 

//I calculs
  //on cherche le nom du forum
  $searfo="select nom from forum_cat";
  $quefo=mysql_query($searfo);
  $arrfo=mysql_fetch_array($quefo);
  //on compte le nombre de thread
  $searth="select count(id) as threa from thread GROUP BY forum_cat";
  $queth=mysql_query($searth);
  $threa=mysql_fetch_row($queth);
  $threaf=$threa[0];
   
  //on compte le nbr de message
  $searmsg="select count(id) as msg from message GROUP BY forum_cat";
  $quemsg=mysql_query($searmsg);
  $msg=mysql_fetch_row($quemsg);
  $msgf=$msg[0];
   
  //on cherche l'id du dernier msg
  $maxid="SELECT MAX(id) FROM message GROUP By forum_cat";
  $id_m=mysql_query($maxid);  
  $id_ma=mysql_fetch_row($id_m);
  $id_max=$id_ma[0];
  //on prend tout dans les messages ou l'id est le plus haut  
  $lastmsg="select * from message WHERE id='$id_max'";
  $last_msg=mysql_query($lastmsg);
  $last_message=mysql_fetch_array($last_msg);
   
  //II partie affichage
  echo '<center><table>
    <tr>
    <th width=40 align=center>Forum</th><th width=40 align=center>Thread</th><th width=40 align=center>Message</th><th width=90 align=center>Last message</th>
    </tr><tr>';
  //tant que l'on a des nom de category, des thread, des msg on continu en affichant le dernier msg
  while ($arrfo)
   {  
    echo '<td align=center><a href="cat.php?section='.$arrfo["nom"].'">'.$arrfo["nom"].'</a></td><td align=center>'.$threaf.'</td><td align=center>'.$msgf.'</td><td align=center>'.$last_message["pseudo"].'@ '.$last_message["day_hour"].'</td>';
   }


 
ca ne marche absolumemnt pas !
primo lors de l'affichage il ne m'affiche que la premier category
secondo il me le fait un boucle preske infini

Reply

Marsh Posté le 14-12-2002 à 17:49:51    

bon deja avec ca  

Code :
  1. while ($arrfo)
  2.   { 
  3.    echo '<td align=center><a href="cat.php?section='.$arrfo["nom"].'">'.$arrfo["nom"].'</a></td><td align=center>'.$threaf.'</td><td align=center>'.$msgf.'</td><td align=center>'.$last_message["pseudo"].'@ '.$last_message["day_hour"].'</td>';
  4.   }


c'est pas etonnant d'avoir une boucle infinie... tu le changes ou, $arrfo ?

Reply

Marsh Posté le 14-12-2002 à 17:51:33    

comment ca je le change ou? :heink:  
 
je veut que tant qu'il trouve des nom de category qu'il me els affiche [:spamafote]

Reply

Marsh Posté le 14-12-2002 à 17:52:52    

Code :
  1. //I calculs
  2. //on cherche le nom du forum
  3. //on compte le nombre de thread
  4. //on compte le nbr de message


euh... t'as pas compris le but du group by...  
http://www.mysql.com/doc/en/Group_by_functions.html
 

Reply

Marsh Posté le 14-12-2002 à 17:56:29    

tjr pas compris avec l'anglais la :/
 
je voudrait qu'il me compte le nombre de thread selon la category
 
en gros c'est avec un where cat_forum='$nom'
 
mais comme je ne recupere le nom qu'a la fin ca me soule


Message édité par Profil supprimé le 14-12-2002 à 17:57:07
Reply

Marsh Posté le 14-12-2002 à 18:00:28    

Code :
  1. //I calculs
  2. //on cherche pas le nom du forum
  3. //on compte le nombre de thread groupé par forum
  4. $query = "select forum_cat, count(id) from thread GROUP BY forum_cat";
  5. $res = mysql_query($query);
  6. while($row = mysql_fetch_row($res))
  7. {
  8.    //ici on a (nom, count)
  9. }
  10. //on compte le nbr de message
  11. ...

Reply

Marsh Posté le 14-12-2002 à 18:01:54    

en gros il faudrait ca : WHERE forum_cat=".$arrafo["nom"]

Reply

Marsh Posté le 14-12-2002 à 18:04:03    

chacal_one333 a écrit :

en gros il faudrait ca : WHERE forum_cat=".$arrafo["nom"]


tu n'as PAS BESOIN de recuperer le nom avant, bordel !

Reply

Marsh Posté le 14-12-2002 à 18:08:33    

t'enerve pas putain t'explique meme pas tu me crache un code et tout la !
j'essaye de comprendre quoi!

Reply

Marsh Posté le 14-12-2002 à 18:10:06    

essaye de recuperer un cours de SQL en français, ca sera plus simple  [:sinclaire]

Reply

Marsh Posté le 14-12-2002 à 18:10:37    

wai ben c bon j'ai compris mais bon
 
ma boucle infine est la quand meme

Reply

Marsh Posté le 14-12-2002 à 18:11:23    

et ilv eut tjr pas m'afficher ma deuzieme categorie :'(

Reply

Marsh Posté le 14-12-2002 à 18:12:58    

parce que tu boucles toujours sur la meme valeur...

Reply

Marsh Posté le 14-12-2002 à 18:13:31    

ben normalement avec mon fetch_array il devrait mes les passer en revue [:spamafote]

Reply

Marsh Posté le 14-12-2002 à 18:15:55    

chacal_one333 a écrit :

ben normalement avec mon fetch_array il devrait mes les passer en revue [:spamafote]


justement non, c'est ca que je te disait qu'il fallait modifier...
fetch_array te ramene la ligne suivante sous forme de tableau.
donc au premier appel il te file la premiere ligne, et apres, la deuxieme, etc...
 
la tu l'appelles qu'une seule fois...
faut mettre l'appel dans ton while d'affichage

Reply

Marsh Posté le 14-12-2002 à 18:17:49    

ben j'ai un while !
je comprend aps bien ta derniere fraze dsl

Reply

Marsh Posté le 14-12-2002 à 18:18:09    

C que j'avais pas compris la question en fait. Sinon en effet le GROUP BY ça semble correct.

Reply

Marsh Posté le 14-12-2002 à 18:21:39    

Code :
  1. SELECT nom FROM table GROUP BY nom
  2. while ($res = mysql_fetch_object($resultat))
  3.   $search .= "forum_cat='" . $res->nom . "' AND ";
  4. $search = substr($search, 0, strlen($search)-5);


 
C un truc dans le genre ci-dessus.


Message édité par Dost67 le 14-12-2002 à 18:21:57
Reply

Marsh Posté le 14-12-2002 à 18:22:49    

chacal_one333 a écrit :

ben j'ai un while !
je comprend aps bien ta derniere fraze dsl


tu as un while, oui, mais qui teste toujours LA MEME VALEUR, a savoir la premiere ligne. Ta variable arrfo, il faut la mettre a jour avec les lignes suivantes...
 
au lieu de  

Code :
  1. while($arrfo)
  2. }


 
il te faudrait un  

Code :
  1. while( ($arrfo = mysql_fetch_array(...)) )
  2. {
  3. }


 
ou un  

Code :
  1. while($arrfo)
  2. {
  3. //affiche
  4.   ...
  5. //passe a la ligne suivante
  6. $arrfo = mysql_fetch_array(...)
  7. }

Reply

Marsh Posté le 14-12-2002 à 18:23:04    

je sais ce qu'est un while merci mais je comprend pas pk ca boucle comme ca!

Reply

Marsh Posté le 14-12-2002 à 18:24:52    

lorill a écrit :


tu as un while, oui, mais qui teste toujours LA MEME VALEUR, a savoir la premiere ligne. Ta variable arrfo, il faut la mettre a jour avec les lignes suivantes...
 
au lieu de  

Code :
  1. while($arrfo)
  2. }


 
il te faudrait un  

Code :
  1. while( ($arrfo = mysql_fetch_array(...)) )
  2. {
  3. }


 
ou un  

Code :
  1. while($arrfo)
  2. {
  3. //affiche
  4.   ...
  5. //passe a la ligne suivante
  6. $arrfo = mysql_fetch_array(...)
  7. }



:jap: c'etait bien ca le truc
je pensait pouvoir definir le'array avant et le rapellé au while !
 
tu m'a appris un truc lorill merci ;) :hello:

Reply

Marsh Posté le 14-12-2002 à 18:25:49    

chacal_one333 a écrit :

je sais ce qu'est un while merci mais je comprend pas pk ca boucle comme ca!
 


 
:sarcastic:

Reply

Marsh Posté le 14-12-2002 à 18:28:53    

ben si jmen sert d'ahbitude :o  
 
enfin l'important c'est d'apprendre :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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