PHP/MSQL requête complexe
Résolu
Spykees
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
Spykees Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Spykees Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un souci avec l'une de mes requête j'ai 3 table, une article, une matiere et la dernière pour la liaison artplat.
Voici mon code
le problème c'est que ca m'affiche au temps de titre qu'il y a d'enregistrements dans la table artplat donc si j'ai deux matières, je me retrouve avec
planche en bois
planche en fer
au lieu de planche en bois et en fer
comment faire ma requête pour ne pas doubler le titre mais garder la boucle while pour l'affichage des autres articles ?
Merci d'avance de votre aide
J'ai un souci avec l'une de mes requête j'ai 3 table, une article, une matiere et la dernière pour la liaison artplat.
Voici mon code
$req = "SELECT article.titre, matiere.nom FROM article,matiere,artplat WHERE article.id_article = artplat.idarticle" ; $sql = mysql_query($req); while($data = mysql_fetch_array($sql)) { echo 'Nom du matériaux: '.$data['titre'].' disponible en '.$data['nom'].'<br>'; }
le problème c'est que ca m'affiche au temps de titre qu'il y a d'enregistrements dans la table artplat donc si j'ai deux matières, je me retrouve avec
planche en bois
planche en fer
au lieu de planche en bois et en fer
comment faire ma requête pour ne pas doubler le titre mais garder la boucle while pour l'affichage des autres articles ?
Merci d'avance de votre aide
A voir également:
- PHP/MSQL requête complexe
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php ✓ - Forum PHP
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Php alert - Forum PHP
2 réponses
En tout SQL :
SELECT
article.id_article,
article.titre,
GROUP_CONCAT( matiere.nom SEPARATOR ' et ' ) AS matiere
FROM article
INNER JOIN artplat ON article.id_article = artplat.idarticle
INNER JOIN matiere ON matiere.id_matiere = artplat.idmatiere
GROUP BY article.id_article
Avec PHP :
$compositions = array();
while($data = mysql_fetch_array($sql))
{
$compositions[ $data['article'] ][] = $data['matiere'];
}
foreach( $compositions as $nom => $matieres )
{
echo 'Nom du matériaux: '.$nom.' disponible en '.implode( ' et ' , $matieres).'<br>';
}
SELECT
article.id_article,
article.titre,
GROUP_CONCAT( matiere.nom SEPARATOR ' et ' ) AS matiere
FROM article
INNER JOIN artplat ON article.id_article = artplat.idarticle
INNER JOIN matiere ON matiere.id_matiere = artplat.idmatiere
GROUP BY article.id_article
Avec PHP :
$compositions = array();
while($data = mysql_fetch_array($sql))
{
$compositions[ $data['article'] ][] = $data['matiere'];
}
foreach( $compositions as $nom => $matieres )
{
echo 'Nom du matériaux: '.$nom.' disponible en '.implode( ' et ' , $matieres).'<br>';
}
malheureusement ca me donne l'erreur:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/1f8890efd1fe693ea12cf874c43a90b9/web/testeconnect.php on line 61