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

  FORUM HardWare.fr
  Programmation
  PHP

  recuperation de variable immediate

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

recuperation de variable immediate

n°269680
Profil sup​primé
Posté le 14-12-2002 à 17:18:25  answer
 

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];

mood
Publicité
Posté le 14-12-2002 à 17:18:25  profilanswer
 

n°269681
lorill
Posté le 14-12-2002 à 17:19:43  profilanswer
 

chacal_one333 a écrit :

Bon le titre est incomprehensible


confidence pour confidence, le message aussi  [:sinclaire]

n°269682
Profil sup​primé
Posté le 14-12-2002 à 17:21:38  answer
 

lorill a écrit :


confidence pour confidence, le message aussi  [:sinclaire]  

:(

n°269683
Profil sup​primé
Posté le 14-12-2002 à 17:22:36  answer
 

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

n°269684
lorill
Posté le 14-12-2002 à 17:23:14  profilanswer
 

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 ?

n°269687
Profil sup​primé
Posté le 14-12-2002 à 17:25:24  answer
 

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

n°269689
lorill
Posté le 14-12-2002 à 17:27:28  profilanswer
 

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.

n°269691
HappyHarry
Posté le 14-12-2002 à 17:28:45  profilanswer
 

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

n°269693
lorill
Posté le 14-12-2002 à 17:31:07  profilanswer
 

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

n°269695
Dost67
Posté le 14-12-2002 à 17:40:51  profilanswer
 

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

mood
Publicité
Posté le 14-12-2002 à 17:40:51  profilanswer
 

n°269698
lorill
Posté le 14-12-2002 à 17:43:49  profilanswer
 

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

n°269699
Profil sup​primé
Posté le 14-12-2002 à 17:45:27  answer
 

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:

n°269700
lorill
Posté le 14-12-2002 à 17:46:19  profilanswer
 

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

n°269703
Profil sup​primé
Posté le 14-12-2002 à 17:47:43  answer
 

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

n°269705
lorill
Posté le 14-12-2002 à 17:49:51  profilanswer
 

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 ?

n°269707
Profil sup​primé
Posté le 14-12-2002 à 17:51:33  answer
 

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

n°269708
lorill
Posté le 14-12-2002 à 17:52:52  profilanswer
 

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
 

n°269709
Profil sup​primé
Posté le 14-12-2002 à 17:56:29  answer
 

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
n°269711
lorill
Posté le 14-12-2002 à 18:00:28  profilanswer
 

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

n°269714
Profil sup​primé
Posté le 14-12-2002 à 18:01:54  answer
 

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

n°269715
lorill
Posté le 14-12-2002 à 18:04:03  profilanswer
 

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 !

n°269717
Profil sup​primé
Posté le 14-12-2002 à 18:08:33  answer
 

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

n°269719
lorill
Posté le 14-12-2002 à 18:10:06  profilanswer
 

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

n°269720
Profil sup​primé
Posté le 14-12-2002 à 18:10:37  answer
 

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

n°269721
Profil sup​primé
Posté le 14-12-2002 à 18:11:23  answer
 

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

n°269722
lorill
Posté le 14-12-2002 à 18:12:58  profilanswer
 

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

n°269724
Profil sup​primé
Posté le 14-12-2002 à 18:13:31  answer
 

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

n°269727
lorill
Posté le 14-12-2002 à 18:15:55  profilanswer
 

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

n°269728
Profil sup​primé
Posté le 14-12-2002 à 18:17:49  answer
 

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

n°269729
Dost67
Posté le 14-12-2002 à 18:18:09  profilanswer
 

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

n°269734
Dost67
Posté le 14-12-2002 à 18:21:39  profilanswer
 

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
n°269736
lorill
Posté le 14-12-2002 à 18:22:49  profilanswer
 

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

n°269737
Profil sup​primé
Posté le 14-12-2002 à 18:23:04  answer
 

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

n°269741
Profil sup​primé
Posté le 14-12-2002 à 18:24:52  answer
 

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:

n°269743
HappyHarry
Posté le 14-12-2002 à 18:25:49  profilanswer
 

chacal_one333 a écrit :

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


 
:sarcastic:

n°269744
Profil sup​primé
Posté le 14-12-2002 à 18:28:53  answer
 

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

mood
Publicité
Posté le   profilanswer
 


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

  recuperation de variable immediate

 

Sujets relatifs
Tester le type d'une variable entrée dans scanfformulaire > Mailto:$une variable, est ce possible ?
Passer un tableau en variablegors problème de récupération de données, URGENT
FPDF Passer ue variable a la fonctions headernotice avec $_GET[variable] [Résolu]
Serveur local impossible de passer des variable par url [résolu][PHP/MySQL] question sur la recuperation de champs
Erreur T_VariableTi89 : assigner un complexe à une variable...
Plus de sujets relatifs à : recuperation de variable immediate


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