| |
Savez-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.
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
milkiway WRInaute accro

Inscrit le: 03 Fév 2004 Messages: 1949 Localisation: Venigo
|
Posté 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 ! |
|
| |
|
 |
dh WRInaute impliqué

Inscrit le: 01 Sep 2003 Messages: 382
|
Posté 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 |
|
| |
|
 |
milkiway WRInaute accro

Inscrit le: 03 Fév 2004 Messages: 1949 Localisation: Venigo
|
Posté 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. |
|
| |
|
 |
yanhl WRInaute passionné

Inscrit le: 04 Déc 2003 Messages: 792
|
Posté 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. |
|
| |
|
 |
milkiway WRInaute accro

Inscrit le: 03 Fév 2004 Messages: 1949 Localisation: Venigo
|
Posté 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
Merci à tous ! |
|
| |
|
 |
yanhl WRInaute passionné

Inscrit le: 04 Déc 2003 Messages: 792
|
Posté 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
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  |
|
| |
|
 |
yanhl WRInaute passionné

Inscrit le: 04 Déc 2003 Messages: 792
|
Posté 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.  |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
|
|