requete mysql sur plusieurs tables -> affichage sur plusieurs tables !
Bonjour !
Voila j'ai un problème avec une requête MySQL sur plusieurs tables
Mes tables :
merch_rubriques
id...nom.....classement
1....CD........3
2....TShirt....1
3....Sweat...2
merch_articles
id..id_rubrique...nom........image.........position
1...2..................Fantom.....fantom.jpg...2
2...1..................Lunatic.....cd.jpg.........1
3...2..................Monkey.....monkey.gif...1
4...1..................Promo.......promo.jpg....2
Je m'explique,
j'aimerais afficher plusieurs tables html, chacune correspondant à une rubrique.
Ces tables seraient classées par "classement ASC" et contiendraient les articles associés, classés par "position ASC".
Pour l'instant (je sais c'est très moche), je fais ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
$query1 = mysql_query("SELECT * FROM merch_rubriques ORDER BY classement ASC;");
while ($row1 = mysql_fetch_array($query1)) {
echo "<a href=\"merch.php?add=".$row1["id"]."\">Ajouter un Article</a>";
echo "<table>\n";
echo "<tr><th colspan=\"3\">Rubrique : ".$row1["nom"]."</th></tr>\n";
echo "<tr>\n";
echo "<th>Position</th>\n";
echo "<th>Image</th>\n";
echo "<th>Nom</th>\n";
echo "<th colspan=\"2\">Action</th>\n";
echo "</tr>\n";
$query2 = mysql_query("SELECT * FROM merch_articles WHERE id_rubrique = ".$row1["id"]." ORDER BY position ASC;");
while ($row = mysql_fetch_array($query2)) {
echo "<tr>\n";
echo "<td>".$row["position"]."</td>\n";
echo "<td><img src=\"".$target.$row["image"]."\" alt=\"\" /></td>\n";
echo "<td>".$row["nom"]."</td>\n";
echo "<td><a href=\"?mod=".$row["id"]."\">modifier</a></td>\n";
echo "<td><a href=\"?supprimer=".$row["id"]."&img=".urlencode($row["image"])."\" onclick=\"return confirm('Voulez vous vraiment supprimer l\'article ?');\">supprimer</a></td>\n";
echo "</tr>\n";
}
echo "</table>\n";
} |
Pour l'instant il n'y a pas grand chose dans mes tables donc ça passe encore bien, mais plus tard j'y vois pas beau...
Alors j'ai bien essayé des requêtes du genre
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
$query = mysql_query("SELECT
merch_articles.id,
merch_articles.id_rubrique AS idRubArt,
merch_articles.nom AS nomArt,
merch_articles.image,
merch_articles.position,
merch_rubriques.id AS idRub,
merch_rubriques.nom,
merch_rubriques.classement
FROM
merch_articles,
merch_rubriques
WHERE
merch_articles.id_rubrique = merch_rubriques.id
ORDER BY classement ASC;"); |
Le problème est que ça ne sort qu'une table, dont les colonnes sont
nom de la rubrique
nom de l'article
etc...
En plus je ne peux que classer, soit les rubriques, soit les articles ; mais pas les deux en même temps.
Le schéma de ce qu'il me faudrait :
.........RUBRIQUE 1..........
IMAGE 1.....ARTICLE 1.....
IMAGE 2.....ARTICLE 2.....
.........RUBRIQUE 2..........
IMAGE 1.....ARTICLE 1.....
IMAGE 2.....ARTICLE 2.....
J'ai beau chercher dans la doc MySQL, sur les forums et dans les cours, je ne trouve rien se rapportant à mon problème.
Et c'est là que j'en viens (enfin) à vous...
Quelqu'un a-t-il déjà rencontré ce problème, qui saurait m'aiguiller ?