affichage de données en boucle

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 : affichage de données en boucle

par Ryle » 17 déc. 2007, 13:15

Non pas spécialement.. si les articles peuvent être associées à plusieurs catégories, tu dois avoir une seconde table dans ta base et tu auras fait une jointure externe pour lier tes données, ce qui aura pour effet de répéter l'article dans chacune des catégories auxquelles il est associé :)

En gros ta requête retournera :

Code : Tout sélectionner

Categorie1, ArticleA Categorie1, ArticleB Categorie2, ArticleA Categorie2, ArticleC Categorie2, ArticleD
Et le principe fonctionne toujours :)

par d0m » 17 déc. 2007, 12:53

C'est pratique mais il faut alors qu'un article appartienne à une seule catégorie.

par Ryle » 17 déc. 2007, 12:37

Pesonnellement je me contente d'une variable temporaire dans laquelle je stocke ma catégorie, et je l'affiche dès qu'elle change.
$cat = '';
while ($r = mysql_fetch_array($result)) { 
  if ($cat != $r['categorie']) {
    $cat = $r['categorie']
    echo '<h3>'.$cat.'</h3>';
  }
  echo $r['nomArticle']; 
}
Suffit de rajouter un tri par catégorie en premier dans la requête pour avoir les articles dans l'ordre et le tour est joué :)

par Truc » 17 déc. 2007, 12:26

Même réponse qu'ici :wink:

par d0m » 17 déc. 2007, 12:24

avant l'affichage, il faut voir comment stocker les informations à afficher pour que l'organisation corresponde à tes besoins et que l'affichage s'en trouve facilitée.

Il te suffit de structurer tes informations de la manière que tu énonces.

par exemple :
un tableau contenant en clé le nom des catégories et comme valeurs un tableau contenant les différents articles de cette catégorie.

Code : Tout sélectionner

array( categorie1 => array( article 1,article2,article3... ), categorie2 => array( article 1,article2,article3... ), .... )

par Invité » 17 déc. 2007, 12:09

en gros, comment afficher des données sous forme d'arbre et pas de liste?

affichage de données en boucle

par Invité » 17 déc. 2007, 12:03

Bonjour,
j'ai des articles qui appartiennent à des catégories.
J'ai 2 tables distinctes pour les articles et les catégories.
Chaque article possède un champ qui stocke l'id de la catégorie d'appartenance.

J'arrive à récupérer tous les articles avec l'info sur la catégorie grâce à une requete mysql.
Mon problème se trouve à l'affichage.

Pour afficher tous les articles en boucle, j'utilise:
while ($r = mysql_fetch_array($result))
{
  echo $r['nomArticle'];

}
Si je veux afficher la catégorie d'appartenance de l'article, ça marche aussi. Le problème est que cette technique va m'afficher le nom de catégorie autant de fois qu'il y a d'articles.
Si j'ai 10 articles, je vais avoir le nom de catégorie 10 fois (1 fois pour chaque article).

Comment faire pour afficher le nom de catégorie une seule fois pour les articles concernés, comme ceci:
categorie 1
- article 1
- article 2
- article 3

categorie 2
- article 1
- article 2
- article 3
et pas
- article 1 => catégorie 1
- article 2 => catégorie 1
- article 3 => catégorie 1

- article 1 => catégorie 2
- article 2 => catégorie 2
- article 3 => catégorie 2
Merci pour vos réponses.