Boucles

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Boucles

Re: Boucles

par AB » 27 mars 2010, 21:27

Pour n'afficher qu'une fois la rubrique suivie des sujets tu peux faire ça

$rubrique = null;

while($result = mysql_fetch_assoc($ressource))

{
if($result['rubrique'] != $rubrique) echo $result['rubrique'].'<br />';

echo $result['sujet'].'<br />';

$rubrique = $result['rubrique'];
}

Re: Boucles

par pierrema » 27 mars 2010, 20:34

c'est super ! merci !

Reste plus qu'à réussir à créer cette ces boucle(s).

Merci encore :D

Re: Boucles

par datesta » 27 mars 2010, 18:31

un while, un for, c'est la même chose.

Avec le while on peut oublier d'incrémenter/décrementer la variable :P

Pour le menu déroulant il suffit de mettre un + a coté de chaque rubrique avec une action javascript associé.
Ce + affiche/cache les items de la rubrique courante.

Pour faire ça, il suffit de mettre les items d'une meme rubrique dans un div avec comme style display:none (pour le cacher par défaut) et lui donner un id spécifique (qui permet de le relier à la rubrique)

ça ressemblerait à ça :

Code : Tout sélectionner

<script type="text/javascript"> function developpe(plus,id) { var itemsDeLaRubrique = document.getElementById("item_"+id); //récuperation de la div des items if(itemsDeLaRubrique.style.display == "none") { //si items cachés itemsDeLaRubrique.style.display ='block'; //on affiche plus.innerHTML = '-'; // permet de changer le + en -..normalement ^^ } else { itemsDeLaRubrique.style.display ='none'; //on cache plus.innerHTML = '+'; //change le - en + } } </script> donneesRubrique = requete recuperation rubrique pour chaque donneesRubrique afficher '<a href="#" onClick="developpe(this,\'donneesRubrique[idRubrique]\'); return false;">+</a> donneesRubrique[nomRubrique]' afficher '<div id="item_"'.donneesRubrique[idRubrique].'" style="display:none">' donneesItem = recuperation items de la rubrique courante pour chaque donneesItem afficher donneesItem[nomItem] fpour afficher '</div>'; fpour
en cliquant sur le +, la fonction javascript "developpe" est appelée avec l'id de la rubrique courante. Cela permet de cacher/afficher les bons items.

Re: Boucles

par pierrema » 27 mars 2010, 16:21

Merci, je vais essayer mais il n'est pas évident de mettre une fois le nom de la rubrique et tous les items correspondants en dessous... et passer à la rubrique suivante...

je sais pas si il vaut mieux un while ou un for...

J'utilise effectivement deux requêtes, la première affiche chaque rubrique, et la seconde les items... mais dans la boucle pour organiser les deux, c'est pas très clair...

Connaissez-vous en plus un système qui permet de faire une rubrique déroulante ? C'est à dire comme en XML un + qui ouvre le menu et le ferme à chaque clic ? pour dérouler les items de chaque rubrique ?

En tous cas merci de m'avoir répondu.

Re: Boucles

par datesta » 27 mars 2010, 13:21

Bonjour,

tu peux faire une requete qui récupère les deux infos (rubrique+item)
ou
faire deux requetes une pour obtenir les rubriques et dans la boucle de récupération des rubriques faire une nouvelle requete pour récuperer les items de la rubrique. (c'est ce que tu proposes à la fin)


solution 1 : il faut un ORDER BY au niveau des noms des rubriques et des items

Code : Tout sélectionner

donnees = requete récuperation ligne+rubrique.. derniereRubrique = "" pour chaque donnees si derniereRubrique != donnees[nomRubrique] afficher donnees[nomRubrique] derniereRubrique = donnees[nomRubrique] fsi afficher donnees[nomItem] fpour
solution 2 :

Code : Tout sélectionner

donneesRubrique = requete recuperation rubrique pour chaque donneesRubrique afficher donneesRubrique[nomRubrique] donneesItem = recuperation items de la rubrique courante pour chaque donneesItem afficher donneesItem[nomItem] fpour fpour

Boucles

par pierrema » 27 mars 2010, 12:00

Bonjour,

pourriez-vous m'aider svp ?

j'essaie de réaliser l'affichage d'un résultat de base de données mais ça n'est pas ce que je souhaite

La base est comme ça :

N°rubrique (1) Rubrique1 : -item1
N°rubrique (1) Rubrique1 : -item2
N°rubrique (2) Rubrique2 : -item3
Rubrique2 : etc

J'aimerais afficher UNE FOIS le nom de la rubrique et en dessous les items correspondant

Rubrique 1
item1
item2
Rubrique 2
item3


Le truc c'est que lorsque je fais une boucle c'est tenté de m'afficher à chaque fois la rubrique.

Je vous avoue que j'ai un peu de mal à écrire la boucle.

dois-je faire un

pour chaque rubrique,
for i (jusqu'à 1) pour la rubrique et for k<count(item de la rubrique 1) pour les items correspondants ?

Je sais pas le faire...

Merci pour votre aide