Mysql bases relationelle
Résolu/Fermé
Spykees
Messages postés
16
Date d'inscription
vendredi 15 octobre 2010
Statut
Membre
Dernière intervention
17 octobre 2010
-
15 oct. 2010 à 21:05
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 - 16 oct. 2010 à 20:20
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 - 16 oct. 2010 à 20:20
A voir également:
- Mysql bases relationelle
- Mysql download - Télécharger - Bases de données
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock' (2) ✓ - Forum Linux / Unix
- Mysql gratuit ou payant - Forum MySQL
- Xampp mysql ne démarre pas ✓ - Forum MySQL
- Mysql error 1 ✓ - Forum Réseaux sociaux
5 réponses
naruto-94
Messages postés
865
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
20 décembre 2012
188
Modifié par naruto-94 le 15/10/2010 à 21:29
Modifié par naruto-94 le 15/10/2010 à 21:29
Salut ,
tu as bon de dire qu'il faut 3 tables , voici comment je procèderais :
tu créer les 3 tables (articles,matiere,et la 3eme qui contient l'id des 2 tables) .
ensuite du coté html/php/sql tu fais les input de type checkbox pour cocher de quelles matieres est l'article .
pour afficher les checkbox pour chaque matiere tu fais en php :
$req = "SELECT id,libelle_matiere FROM matieres" ;
$sql = mysql_query($req);
while($data = mysql_fetch_array($sql))
{
echo $data['libelle_matiere']." <input type='checkbox' name='matiere[]' value='".$data['id']."'/>";
}
chaque checkbox a pour meme nom matiere[] , c'est un tableau qui stocke toutes les variable qui sont coché .
et pour récupérer toutes les valeur coché ( qui correspond au id des matière) et les inserer dans la bdd :
foreach($_POST["matiere"] as $key => $val)
{
mysql_query("INSERT INTO 3emetable VALUES(".$idarticle.",".$val.")");
// ça insert l'id de l'article et la valeur de chaque case du tableau ( qui correspond au id des matiere coché)
}
foreach est une boucle qui parcours le tableau matiere[] jusqu'a la derniere case .
pour plus d'info sur les tableau cherches a array php sur google
tu as bon de dire qu'il faut 3 tables , voici comment je procèderais :
tu créer les 3 tables (articles,matiere,et la 3eme qui contient l'id des 2 tables) .
ensuite du coté html/php/sql tu fais les input de type checkbox pour cocher de quelles matieres est l'article .
pour afficher les checkbox pour chaque matiere tu fais en php :
$req = "SELECT id,libelle_matiere FROM matieres" ;
$sql = mysql_query($req);
while($data = mysql_fetch_array($sql))
{
echo $data['libelle_matiere']." <input type='checkbox' name='matiere[]' value='".$data['id']."'/>";
}
chaque checkbox a pour meme nom matiere[] , c'est un tableau qui stocke toutes les variable qui sont coché .
et pour récupérer toutes les valeur coché ( qui correspond au id des matière) et les inserer dans la bdd :
foreach($_POST["matiere"] as $key => $val)
{
mysql_query("INSERT INTO 3emetable VALUES(".$idarticle.",".$val.")");
// ça insert l'id de l'article et la valeur de chaque case du tableau ( qui correspond au id des matiere coché)
}
foreach est une boucle qui parcours le tableau matiere[] jusqu'a la derniere case .
pour plus d'info sur les tableau cherches a array php sur google
Spykees
Messages postés
16
Date d'inscription
vendredi 15 octobre 2010
Statut
Membre
Dernière intervention
17 octobre 2010
Modifié par Spykees le 15/10/2010 à 23:01
Modifié par Spykees le 15/10/2010 à 23:01
Merci beaucoup pour ta réponse, pourrais-je abusé en te demande la requête a effectuer pour afficher le nom de l'article et les matières associées ?
Encore merci
edit, j'ai essayer
le problème c'est que ca me donne c'a m'affiche autemp de titre qu'il y a d'enregistrement dans la table artplat donc si j'ai deux matière, je me retrouve avec
planche en bois
planche en fer
au lieu de planche en bois et en fer
Merci d'avance
Encore merci
edit, j'ai essayer
$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 me donne c'a m'affiche autemp de titre qu'il y a d'enregistrement dans la table artplat donc si j'ai deux matière, je me retrouve avec
planche en bois
planche en fer
au lieu de planche en bois et en fer
Merci d'avance
Spykees
Messages postés
16
Date d'inscription
vendredi 15 octobre 2010
Statut
Membre
Dernière intervention
17 octobre 2010
15 oct. 2010 à 23:03
15 oct. 2010 à 23:03
c'est ou que je fais erreur ?
Spykees
Messages postés
16
Date d'inscription
vendredi 15 octobre 2010
Statut
Membre
Dernière intervention
17 octobre 2010
16 oct. 2010 à 09:12
16 oct. 2010 à 09:12
un petit up,
Quelqu'un aurait la solution ?
Quelqu'un aurait la solution ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
naruto-94
Messages postés
865
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
20 décembre 2012
188
Modifié par naruto-94 le 16/10/2010 à 20:24
Modifié par naruto-94 le 16/10/2010 à 20:24
Essaies la requete :
SELECT A.titre,M.nom FROM article A,matieres M,artplat Ar WHERE A.id_article = Ar.idarticle AND M.id_mateire = M.IN(Ar.idmatiere) ;
SELECT A.titre,M.nom FROM article A,matieres M,artplat Ar WHERE A.id_article = Ar.idarticle AND M.id_mateire = M.IN(Ar.idmatiere) ;