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

  FORUM HardWare.fr
  Programmation
  PHP

  incrémentation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

incrémentation

n°1417290
jenny50
Posté le 01-08-2006 à 11:10:03  profilanswer
 

bonjour,  
 
J'ai un problème, je souhaite faire un compteur d'incrémentation pour avoir un menu dynamique de A à Z mais je n'y arrive pas. Voici le code tel qu'il est actuellement (avec mes essais).
 

Code :
  1. <?
  2.          $max = 20;
  3.          for ($i=12; $i!= $max ; $i++)
  4.           {
  5.           $sql_m = " SELECT cat_cle, cat_lib FROM categorie WHERE cat_cle>22 AND cat_cle<32 ORDER BY cat_lib ASC ";
  6.           $qry_m = pg_query($conn,$sql_m);
  7.           while($result_m = pg_fetch_assoc($qry_m))
  8.            {
  9.            $cat = $result_m['cat_cle'];
  10.          ?>
  11.          <dt onClick="javascript:montre('smenu<?=$i?>');"><a href="#" target="bodemer"><?=$result_m['cat_lib']?></a></dt>
  12.           <dd id="smenu<?=$i?>">
  13.            <ul>
  14.             <?
  15.             $sql_f = " SELECT scat_cle, scat_lib FROM souscategorie WHERE scat_categorie = ".$cat." ORDER BY scat_cle ASC ";
  16.             $qry_f = pg_query($conn,$sql_f);
  17.             while ($result_f = pg_fetch_assoc($qry_f))
  18.              {
  19.             ?>
  20.             <li><a href=""><?=$result_f['scat_lib']?></a></li>
  21.             <?
  22.              }
  23.             }
  24.             ?>
  25.            </ul>
  26.           </dd>
  27.          <?
  28.            //}
  29.           }
  30.          ?>
  31.         </dl>


 
Code javascript du menu ouvrir/fermer

Code :
  1. <script language="javascript">
  2. function montre(id)
  3. {
  4. var d = document.getElementById(id);
  5. for (var i=1; i<=200; i++)
  6.  {
  7.  if (document.getElementById('smenu'+ i))
  8.   {
  9.   document.getElementById('smenu'+ i).style.display = 'none';
  10.   }
  11.  }
  12.  if(d)
  13.   {
  14.   d.style.display = 'block';
  15.   }
  16. }
  17. window.onload = montre;
  18. </script>

mood
Publicité
Posté le 01-08-2006 à 11:10:03  profilanswer
 

n°1417293
Hermes le ​Messager
Breton Quiétiste
Posté le 01-08-2006 à 11:13:14  profilanswer
 

C'est quoi que tu veux exactement là ? Qu'est-ce qui ne marche pas ?
 
Faut donner bcp plus de détails.

n°1417303
flo850
moi je
Posté le 01-08-2006 à 11:25:17  profilanswer
 

remplace  
 <dd id="smenu<?=$i?>">
 
par  <dd id="smenu<?echo $i?>">
 
c'est le menu d'alsacreation,non ?

n°1417310
anapajari
s/travail/glanding on hfr/gs;
Posté le 01-08-2006 à 11:28:52  profilanswer
 

Aaah les topic de jenny50  [:atsuko]  
 
En gros tu fais ça:

Code :
  1. for ($i=12; $i!= $max ; $i++){
  2.   //execution requete
  3.   while($result_m = pg_fetch_assoc($qry_m)){
  4.     ...
  5.    print $i;
  6.   }
  7. }


Ton "for" te fait faire 8 itérations, dans chaque itération tu execute exactement la même requete (qui doit remonter en gros 10 enregistrements "cat_cle>22 AND cat_cle<32" ). Donc tu fais 80 itérations au total!!!
Est-ce bien que tu souhaites???

n°1417314
jenny50
Posté le 01-08-2006 à 11:32:02  profilanswer
 

Ben en fait,  
 
C'est mon compteur d'incrémentation qui ne fonctionne pas. Sur ma page mon menu devrait apparaitre de cette manière :  
CAT 22
  >scat1
  >scat2
  >scat3...
CAT 23
  >scat1
  >scat2...
 
Quand je clique sur CAT 23 son sous menu se déroule et le sous menu de la cat 22 se ferme (code javascript) Pour faire cette manip il faut que "smenu" de <dt> soit égal au "smenu" de <dd>

Code :
  1. #
  2. <dt onClick="javascript:montre('smenu<?=$i?>');"><a href="#" target="bodemer"><?=$result_m['cat_lib']?></a></dt>
  3. #
  4.                                             <dd id="smenu<?=$i?>">


 
Il n'y a uniquement ma "cat 22" qui apparait et quand je clique dessus, le reste de mes "cat" apparait.
 
En fait rien ne fonctionne comme je veux!!

n°1417316
jenny50
Posté le 01-08-2006 à 11:34:11  profilanswer
 

hey anapajari arrete de te moquer de moi !!!!
 
J'ai pas tout compris à ton post... As-tu compris ce que je veux faire?

n°1417321
flo850
moi je
Posté le 01-08-2006 à 11:38:38  profilanswer
 

essaye deja de remplacer <?=$i?> ( qui sauf erreur de m part ne veut rien dire du tout ) par <? echo $?>  
 
en bonus ; tu ouvres des ul dans une boucle ( donc tu en ouvre plusieurs ) , tu les fermes a l'exterieur ( donc tu n'en ferme qu'un ) , idem pour les dd

Message cité 1 fois
Message édité par flo850 le 01-08-2006 à 11:42:09
n°1417322
flo850
moi je
Posté le 01-08-2006 à 11:39:14  profilanswer
 

jenny50 a écrit :

hey anapajari arrete de te moquer de moi !!!!
 
J'ai pas tout compris à ton post... As-tu compris ce que je veux faire?


il te taquine juste ( si il avait voulu se moquer, il aurai ete moins gentil  [:twixy] )
 
en plus il a raison, je pense que tu vas faire afficher bcp plus de menu que ce que tu veux


Message édité par flo850 le 01-08-2006 à 11:41:58
n°1417329
jenny50
Posté le 01-08-2006 à 11:53:44  profilanswer
 

ben ouai je pense que c'est l'emplacement de ma boucle "for" qui ne va pas!!!
 
Mais je ne vois pas comment faire, hier j'ai essayé plein de choses mais sans succès.
Moi en tout je dois avoir 9 CATEGORIE donc mon compteur d'incrémentation doit être 12 pour CAT22, 13 pour CAT23...
 
Vous pouvez m'aider?

n°1417342
omega2
Posté le 01-08-2006 à 12:14:39  profilanswer
 

flo850 a écrit :

essaye deja de remplacer <?=$i?> ( qui sauf erreur de m part ne veut rien dire du tout ) par <? echo $?>

En fait, les deux veulent dire la même chôse.
la seule différence, c'est qu'avec "<?=" tu n'as pas le droit de faire des traitements complexes, tu peux juste calculer une valeur qui sera celle affiché.

mood
Publicité
Posté le 01-08-2006 à 12:14:39  profilanswer
 

n°1417406
anapajari
s/travail/glanding on hfr/gs;
Posté le 01-08-2006 à 13:44:16  profilanswer
 

jenny50 a écrit :

hey anapajari arrete de te moquer de moi !!!!
J'ai pas tout compris à ton post... As-tu compris ce que je veux faire?


Je me moque pas je t'explique que tu as fais n'importe quoi (en gros tu fais une boucle dans une boucle et tu t'étonnes que les résultats ne soient pas bons)!!! [:spamafote]
Non j'avais pas compris ce que tu voulais faire, mais visiblement toi non plus :o
 

jenny50 a écrit :

ben ouai je pense que c'est l'emplacement de ma boucle "for" qui ne va pas!!!


ça c'est sur
 

jenny50 a écrit :

Mais je ne vois pas comment faire, hier j'ai essayé plein de choses mais sans succès.
Moi en tout je dois avoir 9 CATEGORIE donc mon compteur d'incrémentation doit être 12 pour CAT22, 13 pour CAT23...
 
Vous pouvez m'aider?


 
En gros, ce que tu dois faire c'est boucler sur tes catégories, puis sur tes sous-catégories ( sachant qu'on pourrait optimiser via une jointure, mais c'est une autre histoire).
Donc ça donne:

Code :
  1. <?php
  2. $i = 0;
  3. $sql_m = " SELECT cat_cle, cat_lib FROM categorie WHERE cat_cle>22 AND cat_cle<32 ORDER BY cat_lib ASC ";
  4. $qry_m = pg_query($conn,$sql_m);
  5. while($result_m = pg_fetch_assoc($qry_m)) {
  6.   $i++;
  7.   $cat = $result_m['cat_cle'];
  8. ?>
  9.     <dt onClick="javascript:montre('smenu<?=$i?>');"><a href="#" target="bodemer"><?=$result_m['cat_lib']?></a></dt>
  10.     <dd id="smenu<?=$i?>">
  11.     <ul>
  12. <?php
  13.   $sql_f = " SELECT scat_cle, scat_lib FROM souscategorie WHERE scat_categorie = ".$cat." ORDER BY scat_cle ASC ";
  14.   $qry_f = pg_query($conn,$sql_f);
  15.   while ($result_f = pg_fetch_assoc($qry_f)) {
  16. ?>
  17.       <li><a href=""><?=$result_f['scat_lib']?></a></li>
  18. <?php
  19.   }
  20. }
  21. ?>


enfin si j'ai tout compris ;)
 

n°1417459
jenny50
Posté le 01-08-2006 à 14:37:48  profilanswer
 

ok c'est exactement ce que je voulais...
 
En fait à chaque fois je veux trop pas oublier des trucs et en fait je me complique la vie...

n°1417495
flo850
moi je
Posté le 01-08-2006 à 15:10:51  profilanswer
 

omega2 a écrit :

En fait, les deux veulent dire la même chôse.
la seule différence, c'est qu'avec "<?=" tu n'as pas le droit de faire des traitements complexes, tu peux juste calculer une valeur qui sera celle affiché.


 
je savais pas  
merci  [:youyou2224]


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

  incrémentation

 

Sujets relatifs
problème d'incrémentation[Résolu] Mauvaise incrémentation du NumeroAuto dans Access
incrementation d'une variable ($var1, $var2, $var3, ...)Incrémentation aléatoire !
incrémentation par un nombre décimal[batch]Problème incrementation
Probleme d'incrementationSoucis javascript => incrémentation dans une "var"
[MYSQL] Incrémentation comme avec le PHP ou le CLes tableau en HTML et Incrementation au format temps
Plus de sujets relatifs à : incrémentation


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