Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

Requete(s) MySQL pour menu avec rubrique et nom des articles

Poster un nouveau sujet Imprimer cette discussion    Forum -> Administration d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
milkiway
WRInaute accro
WRInaute accro

Inscrit le: 03 Fév 2004
Messages: 1949
Localisation: Venigo

URL permanente de ce messagePosté le : Sam Mar 12, 2005 14:21    Sujet du message: Requete(s) MySQL pour menu avec rubrique et nom des articles

Bonjour,
Je galère complètement avec MySQL que je ne connais presque pas.
Je cherche à générer un menu de ce style :
Code:
<p>Rubrique 1</p>
<ul>
<li>Article 1</li>
<li>Article 2</li>
<li>Article 3</li>
</ul>
<p>Rubrique 2</p>
<ul>
<li>Article 1</li>
<li>Article 2</li>
<li>Article 3</li>
</ul>

J'ai deux bases :
- une base 'rubrique' avec comme champs : id et nom
- une base 'articles' avec comme champs : id, idrubrique, nom, contenu
Et je voudrais donc lister chaque catégorie avec chaque article qui est dedans mais je n'y arrive pas :S
Pouvez vous m'aider svp ?
Comment faire ?
Merci beaucoup !
 
milkiway Visiter le site web du posteur
dh
WRInaute impliqué
WRInaute impliqué

Inscrit le: 01 Sep 2003
Messages: 382

URL permanente de ce messagePosté le : Sam Mar 12, 2005 14:45    Sujet du message: Requete(s) MySQL pour menu avec rubrique et nom des articles

slt

la structure

select tableart.nomart, tablerub.nomrub from tablerub
left join tableart on
tableart.id_rub=tablerub.id


tablerub
id nom
1 chaussette
2 pantalon

tablart

id nom rub
100 chaussette rose 1
101 chaussette verte 1
102 pantalon court 2
.
.
.

dh
 
dh Visiter le site web du posteur
milkiway
WRInaute accro
WRInaute accro

Inscrit le: 03 Fév 2004
Messages: 1949
Localisation: Venigo

URL permanente de ce messagePosté le : Sam Mar 12, 2005 15:01    Sujet du message: Requete(s) MySQL pour menu avec rubrique et nom des articles

Ok merci je ne sais pas si j'ai tout bien compris mais je vais essayer.
Et pour la génération de l'affichage je dois faire comment ?
Merci encore.
 
milkiway Visiter le site web du posteur
yanhl
WRInaute passionné
WRInaute passionné

Inscrit le: 04 Déc 2003
Messages: 792

URL permanente de ce messagePosté le : Sam Mar 12, 2005 15:07    Sujet du message: Requete(s) MySQL pour menu avec rubrique et nom des articles

Voilà un exemple.
Ca sélectionne les articles dans l'ordre inverse de leur création (si ton id est auto incrémenté), et les rubriques sont classées par ordre alphabétique.
Volontairement, les rubriques sans articles ne s'afficheront pas.
Je n'ai pas testé le code que je donne ci-dessous, il y aura peut-etre des erreurs mais c'est pour te montrer le principe.

Code:

$sql = "SELECT a.nom, r.nom AS rubrique FROM articles a, rubriques r WHERE a.idrubrique = r.id ORDER BY a.id DESC, r.nom ASC";
$results = mysql_query($sql) or die ($sql.'<br>'.mysql_error($val) );

$lastRubname = '';
$inList = false;
while ($row = mysql_fetch_assoc($results) {
   if ($row['rubrique'] != $lastRubName) {
      if ($inList) echo('</ul>');
      echo('<h2>'.$row['rubrique'].'</h2>');
      $row['rubrique'] = $lastRubName;
   }
   if (!$inList) {
      echo('<ul>');
      $inList = true;
   }
   echo('<li>'.$row['nom'].'</li>');
}
if ($inList) echo('</ul>');


Bon, c'est assez crade mais c'est pour faire le truc sur peu de lignes et avec une seule requête MySQL.
Note que ce type de génération de HTML, normalement je déteste : ce que je fais la plupart du temps, c'est que je me construit des objets, c'est bien plus logique, et ça permet d'éviter de faire des boucles avec des if, comme ci-dessus.
 
yanhl Visiter le site web du posteur
milkiway
WRInaute accro
WRInaute accro

Inscrit le: 03 Fév 2004
Messages: 1949
Localisation: Venigo

URL permanente de ce messagePosté le : Sam Mar 12, 2005 15:10    Sujet du message: Requete(s) MySQL pour menu avec rubrique et nom des articles

Ok merci.
Si c'est crade, il n'y a pas une solution "propre" ?
Ou p-e que je n'aurais pas du organiser mes tables comme ça ?
Je suis ouvert à tout : je ne connasi rien en mysql Very Happy

Merci à tous !
 
milkiway Visiter le site web du posteur
yanhl
WRInaute passionné
WRInaute passionné

Inscrit le: 04 Déc 2003
Messages: 792

URL permanente de ce messagePosté le : Sam Mar 12, 2005 15:11    Sujet du message: Requete(s) MySQL pour menu avec rubrique et nom des articles

Citation:
Volontairement, les rubriques sans articles ne s'afficheront pas.

Tiens bah si tu veux tout afficher, tu peux utiliser le principe de dh : un bon LEFT JOIN des familles et au lit Wink
Par contre il faudra rajouter des tests à l'affichage... c'est un peu pour ça que j'ai préféré éviter cette technique pour mon exemple Wink
 
yanhl Visiter le site web du posteur
yanhl
WRInaute passionné
WRInaute passionné

Inscrit le: 04 Déc 2003
Messages: 792

URL permanente de ce messagePosté le : Sam Mar 12, 2005 15:16    Sujet du message: Requete(s) MySQL pour menu avec rubrique et nom des articles

Citation:
Si c'est crade, il n'y a pas une solution "propre" ?

Au niveau de mysql c'est une structure correcte.
C'est au niveau de mon principe d'affichage que c'est naze.
Normalement il faut arriver à une structure d'affichage comme ça :
boucle rubriques {
boucles articles {
}
}

pour que ça reflète le code HTML. Pour ça il faut que tu organises tes données avant de passer à l'affichage, mais ça sort du cadre de ta question et je n'ai pas le courage de faire un cours de programmation ici. Wink
 
yanhl Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Administration d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Autres sujets de discussion :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort