Requète sql
swatt
Messages postés
26
Statut
Membre
-
swatt Messages postés 26 Statut Membre -
swatt Messages postés 26 Statut Membre -
Bonjour à tous,
J'ai un big prob. En faire j'ai deux tables reliées entre elles par "id" .
La 1ère table s'appelle Matières dans une matière il y a plusieurs matières.
id Matières
1 mathématique
2 informatique
3 histoire
La 2ème table s'appelle cour dans une matière je peux avoir plusieurs cours.
id Cour
1 probabilité
1 équation du 2nd degré
2 Base de donnée
2 Java
3 L'esclavage
Je dois 'associé un cour à chaque matière par exemple mathématique(matière)=probabilité(cour).
En faite je cherche une requète sql pour associé cette requète à mon programme php afin d'insérer des cours dans chaque matière.
J'espère avoir bienb expliqué.
Merci j'attend de vos news!!!
J'ai un big prob. En faire j'ai deux tables reliées entre elles par "id" .
La 1ère table s'appelle Matières dans une matière il y a plusieurs matières.
id Matières
1 mathématique
2 informatique
3 histoire
La 2ème table s'appelle cour dans une matière je peux avoir plusieurs cours.
id Cour
1 probabilité
1 équation du 2nd degré
2 Base de donnée
2 Java
3 L'esclavage
Je dois 'associé un cour à chaque matière par exemple mathématique(matière)=probabilité(cour).
En faite je cherche une requète sql pour associé cette requète à mon programme php afin d'insérer des cours dans chaque matière.
J'espère avoir bienb expliqué.
Merci j'attend de vos news!!!
A voir également:
- Requète sql
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
- Cherche des haricot vendez les moi ✓ - Forum DS
- Sql lister les tables ✓ - Forum Programmation
38 réponses
En mysql,ca donne
Select Matières,Cour
From cour c,Matières M
where M.id = c.id;
MAis ceci dit donne d'autres nom a tes tables car ca reste ambigüe de donner un nom de table et le même nom pour un de ses attributs.
JE sais pas si le Sql ressemble fort au Mysql mais la base est bonne, il suffit d'ajuster le langage.
Select Matières,Cour
From cour c,Matières M
where M.id = c.id;
MAis ceci dit donne d'autres nom a tes tables car ca reste ambigüe de donner un nom de table et le même nom pour un de ses attributs.
JE sais pas si le Sql ressemble fort au Mysql mais la base est bonne, il suffit d'ajuster le langage.
ok merci de ta réponse rapide lxav, mais moi je veux pas selectionner je veux juste insérer un cour dans la matière.
Bonsoir,
Il te faut rajouter un champ dans la table cours appelé id_mat fessant référence à id de matière. Cela te permet d'avoir la référence de la matière dans la table cour ce qui te permet de liés les deux tables comme tu le montres dans ton exemple.
Tu dois ensuite définir le champ id_mat comme clé étrangère dans la table :
Alter table cour
Foreign key fk_id_mat_c (id_mat) REFERENCES matiere(id);
Lors de la requête d'insertion :
INSERT INTO cour(id,cour,id_mat) VALUES ('1', 'probabilite', '1')
En espèrant avoir répondu à ta question,
Thamior.
Il te faut rajouter un champ dans la table cours appelé id_mat fessant référence à id de matière. Cela te permet d'avoir la référence de la matière dans la table cour ce qui te permet de liés les deux tables comme tu le montres dans ton exemple.
Tu dois ensuite définir le champ id_mat comme clé étrangère dans la table :
Alter table cour
Foreign key fk_id_mat_c (id_mat) REFERENCES matiere(id);
Lors de la requête d'insertion :
INSERT INTO cour(id,cour,id_mat) VALUES ('1', 'probabilite', '1')
En espèrant avoir répondu à ta question,
Thamior.
ok thamior, j'ai déja essayé ta solution.
Mais moi en faite ma requète je dois l'intégré a un programme en php.
Je m'explique: Par un petit formulaire l'ulilisateur choisi premièrement sa matière et ensuite il insert le cour qu'il souhaite associé à sa matière. En faite je cherche un petit programme avec uen requète ou dès que l'utilisteur entre le cour et click sur valider, elle insère le cour automatiquement dans la table cour. Et l'id cour doit ètre associé a l'id matière pour que quand l'utilisateur veux affiché les cours qui se trouve dans une matières elle va le chercher.
Mais moi en faite ma requète je dois l'intégré a un programme en php.
Je m'explique: Par un petit formulaire l'ulilisateur choisi premièrement sa matière et ensuite il insert le cour qu'il souhaite associé à sa matière. En faite je cherche un petit programme avec uen requète ou dès que l'utilisteur entre le cour et click sur valider, elle insère le cour automatiquement dans la table cour. Et l'id cour doit ètre associé a l'id matière pour que quand l'utilisateur veux affiché les cours qui se trouve dans une matières elle va le chercher.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je te propose un petit script en prenant en compte ce que je t'ai mit dans ma précédante réponse :
Je te conseil de mettre les champs id en auto_increment si ce n'est pas déjà fait.
Ensuite, tu créais un menu déroulant :
<?php
if($page == null)
{
<form action="index.php?page=ajout_cours" method="post">
<select name="matiere">
<?php
$sql = "select * from matiere";
$exe = mysql_query($sql); // tu executes la requete
$rt = mysql_fetch_assoc($rt);
if($rt)
{
?>
<option value="<?php echo $rt["id"]; ?>"><?php echo $rt["materie"]; ?></option>
<?php
}
?>
</select>
<input type="text" name="cours" />
<input type="submit" value="Envoyer" />
}
if($apge == "ajout_cours")
{
if($_POST["materiere] != null && $_POST["cours"] != null)
{
$cours = $_POST["cours"];
$id_mat = $_POST["materiere];
$sql = "INSERT INTO cour(cour,id_mat) VALUES (, '$cours', '$id_matiere')"
$exe = mysql_query($sql); // tu executes la requete
if($exe)
{
echo "La requete a bien été ajouté";
}
else
{
echo "La requete a mal été executé !";
}
}
}
?>
En espérant que ça t'aide.
Thamior.
Je te conseil de mettre les champs id en auto_increment si ce n'est pas déjà fait.
Ensuite, tu créais un menu déroulant :
<?php
if($page == null)
{
<form action="index.php?page=ajout_cours" method="post">
<select name="matiere">
<?php
$sql = "select * from matiere";
$exe = mysql_query($sql); // tu executes la requete
$rt = mysql_fetch_assoc($rt);
if($rt)
{
?>
<option value="<?php echo $rt["id"]; ?>"><?php echo $rt["materie"]; ?></option>
<?php
}
?>
</select>
<input type="text" name="cours" />
<input type="submit" value="Envoyer" />
}
if($apge == "ajout_cours")
{
if($_POST["materiere] != null && $_POST["cours"] != null)
{
$cours = $_POST["cours"];
$id_mat = $_POST["materiere];
$sql = "INSERT INTO cour(cour,id_mat) VALUES (, '$cours', '$id_matiere')"
$exe = mysql_query($sql); // tu executes la requete
if($exe)
{
echo "La requete a bien été ajouté";
}
else
{
echo "La requete a mal été executé !";
}
}
}
?>
En espérant que ça t'aide.
Thamior.
excuse thamior, je m'embrouille dans mes propres données que je t'est fourni.
On va reprendre car le nom de ma table est pareil que mon attribu sa ml'embrouille.
Si j'ai
Ma 1ère table va s'appellé table1
id et Matière comme précédemment.
Ma 2ème table s'appelle table2
id et cour comme précédemment
est ce que tu peux me redonné ton script avec les nouvelles données.
Je me demande comment tu as pu t'y retrouvé dans ceci.
Merci
On va reprendre car le nom de ma table est pareil que mon attribu sa ml'embrouille.
Si j'ai
Ma 1ère table va s'appellé table1
id et Matière comme précédemment.
Ma 2ème table s'appelle table2
id et cour comme précédemment
est ce que tu peux me redonné ton script avec les nouvelles données.
Je me demande comment tu as pu t'y retrouvé dans ceci.
Merci
Bonjour,
Tu es obligé de mettre un champ fessant référence à la matière dans cours.
Je te propose donc :
CREATE TABLE matiere
(
id_matiere int(5) not null auto_increment,
nom_matiere varchar(60) not null,
Primary Key(id_matiere)
)
CREATE TABLE cours
(
id_cours int(10) not null auto_increment,
nom_cours varchar(120) not null,
id_mat int(5) not null
Primary Key (id_cours),
Foreign Key (id_mat) REFERENCES matiere(id_matiere)
)
Je ne vois pas d'autres solutions pour liés car une matière a un ou plusieurs cours et un cours dépend d'une et une seule matière si j'ai bien compris.
Mon script avec les modifications :
<?php
if($page == null)
{
<form action="index.php?page=ajout_cours" method="post">
<select name="matiere">
<?php
$sql = "select * from matiere";
$exe = mysql_query($sql); // tu executes la requete
$rt = mysql_fetch_assoc($rt);
if($rt)
{
?>
<option value="<?php echo $rt["id_matiere"]; ?>"><?php echo $rt["nom_materie"]; ?></option>
<?php
}
?>
</select>
<input type="text" name="cours" />
<input type="submit" value="Envoyer" />
}
if($page == "ajout_cours")
{
if($_POST["materiere] != null && $_POST["cours"] != null)
{
$cours = $_POST["cours"];
$id_mat = $_POST["materiere];
$sql = "INSERT INTO cours(_nom_cour,id_mat) VALUES ('$cours', '$id_matiere')"
$exe = mysql_query($sql); // tu executes la requete
if($exe)
{
echo "La requete a bien été ajouté";
}
else
{
echo "La requete a mal été executé !";
}
}
}
?>
Je pense qu'avec ça tu devrais t'en sortir ;).
Thamior.
Tu es obligé de mettre un champ fessant référence à la matière dans cours.
Je te propose donc :
CREATE TABLE matiere
(
id_matiere int(5) not null auto_increment,
nom_matiere varchar(60) not null,
Primary Key(id_matiere)
)
CREATE TABLE cours
(
id_cours int(10) not null auto_increment,
nom_cours varchar(120) not null,
id_mat int(5) not null
Primary Key (id_cours),
Foreign Key (id_mat) REFERENCES matiere(id_matiere)
)
Je ne vois pas d'autres solutions pour liés car une matière a un ou plusieurs cours et un cours dépend d'une et une seule matière si j'ai bien compris.
Mon script avec les modifications :
<?php
if($page == null)
{
<form action="index.php?page=ajout_cours" method="post">
<select name="matiere">
<?php
$sql = "select * from matiere";
$exe = mysql_query($sql); // tu executes la requete
$rt = mysql_fetch_assoc($rt);
if($rt)
{
?>
<option value="<?php echo $rt["id_matiere"]; ?>"><?php echo $rt["nom_materie"]; ?></option>
<?php
}
?>
</select>
<input type="text" name="cours" />
<input type="submit" value="Envoyer" />
}
if($page == "ajout_cours")
{
if($_POST["materiere] != null && $_POST["cours"] != null)
{
$cours = $_POST["cours"];
$id_mat = $_POST["materiere];
$sql = "INSERT INTO cours(_nom_cour,id_mat) VALUES ('$cours', '$id_matiere')"
$exe = mysql_query($sql); // tu executes la requete
if($exe)
{
echo "La requete a bien été ajouté";
}
else
{
echo "La requete a mal été executé !";
}
}
}
?>
Je pense qu'avec ça tu devrais t'en sortir ;).
Thamior.
Merci thamior de ton aide,
mais quand je crée la table cour je rentre la requète avec phpmyadmin sa m'affiche une erreur:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(id_cours),
Foreign Key (id_mat) REFERENCES matiere(id_matiere)
)' at line 6
Pourquoi sa me met ceci selon toi???
mais quand je crée la table cour je rentre la requète avec phpmyadmin sa m'affiche une erreur:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(id_cours),
Foreign Key (id_mat) REFERENCES matiere(id_matiere)
)' at line 6
Pourquoi sa me met ceci selon toi???
Petit correctif :
CREATE TABLE cours
(
id_cours int(10) not null auto_increment,
nom_cours varchar(120) not null,
id_mat int(5) not null,
Primary Key (id_cours),
FOREIGN KEY(id_mat) REFERENCES matiere(id_matiere)
)
J'ai oublié une virgule sur la ligne id_mat int(5) not null.
Je viens de tester les requêtes et ça marche impec.
Thamior.
CREATE TABLE cours
(
id_cours int(10) not null auto_increment,
nom_cours varchar(120) not null,
id_mat int(5) not null,
Primary Key (id_cours),
FOREIGN KEY(id_mat) REFERENCES matiere(id_matiere)
)
J'ai oublié une virgule sur la ligne id_mat int(5) not null.
Je viens de tester les requêtes et ça marche impec.
Thamior.
Quand je test le programme que tu m'a donné que je trouve finalement assez simple sa me di:
Parse error: syntax error, unexpected '<' in C:\wamp\www\admin2\items_actions.php on line 4
Pourquoi sa me met sa???
Et a quek moment je dois faire appelle a ma base de donné dont ton programme????
Parse error: syntax error, unexpected '<' in C:\wamp\www\admin2\items_actions.php on line 4
Pourquoi sa me met sa???
Et a quek moment je dois faire appelle a ma base de donné dont ton programme????
Correctif :
<?php
if($page == null)
{
?>
<form action="index.php?page=ajout_cours" method="post">
<select name="matiere">
<?php
$sql = "select * from matiere";
$exe = mysql_query($sql); // tu executes la requete
$rt = mysql_fetch_assoc($rt);
if($rt)
{
?>
<option value="<?php echo $rt["id_matiere"]; ?>"><?php echo $rt["nom_materie"]; ?></option>
<?php
}
?>
</select>
<input type="text" name="cours" />
<input type="submit" value="Envoyer" />
}
if($page == "ajout_cours")
{
if($_POST["materiere] != null && $_POST["cours"] != null)
{
$cours = $_POST["cours"];
$id_mat = $_POST["materiere];
$sql = "INSERT INTO cours(_nom_cour,id_mat) VALUES ('$cours', '$id_matiere')"
$exe = mysql_query($sql); // tu executes la requete
if($exe)
{
echo "La requete a bien été ajouté";
}
else
{
echo "La requete a mal été executé !";
}
}
}
?>
<?php
if($page == null)
{
?>
<form action="index.php?page=ajout_cours" method="post">
<select name="matiere">
<?php
$sql = "select * from matiere";
$exe = mysql_query($sql); // tu executes la requete
$rt = mysql_fetch_assoc($rt);
if($rt)
{
?>
<option value="<?php echo $rt["id_matiere"]; ?>"><?php echo $rt["nom_materie"]; ?></option>
<?php
}
?>
</select>
<input type="text" name="cours" />
<input type="submit" value="Envoyer" />
}
if($page == "ajout_cours")
{
if($_POST["materiere] != null && $_POST["cours"] != null)
{
$cours = $_POST["cours"];
$id_mat = $_POST["materiere];
$sql = "INSERT INTO cours(_nom_cour,id_mat) VALUES ('$cours', '$id_matiere')"
$exe = mysql_query($sql); // tu executes la requete
if($exe)
{
echo "La requete a bien été ajouté";
}
else
{
echo "La requete a mal été executé !";
}
}
}
?>
Mainteant sa m'affiche:
Parse error: syntax error, unexpected $end in C:\wamp\www\admin2\items_actions.php on line 45
Parse error: syntax error, unexpected $end in C:\wamp\www\admin2\items_actions.php on line 45
Tu peux me copier le code de ta page. Sur le code que je t'ai passé je ne compte que 43 lignes ^^.
Thamior.
Thamior.
Tu peux me copier le code de ta page. Sur le code que je t'ai passé je ne compte que 43 lignes ^^.
Thamior.
Thamior.
Le code que je t'ai passé n'a que 43 lignes...
Peux tu me montrer le code que tu as utilisés ?
La comme ça, je ne vois pas ou ce trouve l'erreur.
Thamior.
Peux tu me montrer le code que tu as utilisés ?
La comme ça, je ne vois pas ou ce trouve l'erreur.
Thamior.
Voici mon code:
<?php
if($page == null)
{
?>
<form action="index.php?page=ajout_cours" method="post">
<select name="matiere">
<?php
$sql = "select * from matiere";
$exe = mysql_query($sql); // tu executes la requete
$rt = mysql_fetch_assoc($rt);
if($rt)
{
?>
<option value="<?php echo $rt["id_matiere"]; ?>"><?php echo $rt["nom_materie"]; ?></option>
<?php
}
?>
</select>
<input type="text" name="cours" />
<input type="submit" value="Envoyer" />
}
if($page == "ajout_cours")
{
if($_POST["materiere] != null && $_POST["cours"] != null)
{
$cours = $_POST["cours"];
$id_mat = $_POST["materiere];
$sql = "INSERT INTO cours(_nom_cour,id_mat) VALUES ('$cours', '$id_matiere')"
$exe = mysql_query($sql); // tu executes la requete
if($exe)
{
echo "La requete a bien été ajouté";
}
else
{
echo "La requete a mal été executé !";
}
}
}
?>
<?php
if($page == null)
{
?>
<form action="index.php?page=ajout_cours" method="post">
<select name="matiere">
<?php
$sql = "select * from matiere";
$exe = mysql_query($sql); // tu executes la requete
$rt = mysql_fetch_assoc($rt);
if($rt)
{
?>
<option value="<?php echo $rt["id_matiere"]; ?>"><?php echo $rt["nom_materie"]; ?></option>
<?php
}
?>
</select>
<input type="text" name="cours" />
<input type="submit" value="Envoyer" />
}
if($page == "ajout_cours")
{
if($_POST["materiere] != null && $_POST["cours"] != null)
{
$cours = $_POST["cours"];
$id_mat = $_POST["materiere];
$sql = "INSERT INTO cours(_nom_cour,id_mat) VALUES ('$cours', '$id_matiere')"
$exe = mysql_query($sql); // tu executes la requete
if($exe)
{
echo "La requete a bien été ajouté";
}
else
{
echo "La requete a mal été executé !";
}
}
}
?>