Requète sql
Fermé
swatt
Messages postés
26
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
27 mars 2008
-
11 févr. 2008 à 21:24
swatt Messages postés 26 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 27 mars 2008 - 14 févr. 2008 à 00:08
swatt Messages postés 26 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 27 mars 2008 - 14 févr. 2008 à 00:08
A voir également:
- Requète sql
- Blob sql ✓ - Forum Webmastering
- Sql (+) - Forum Programmation
- Requete http - Guide
- Requete sql commence par ✓ - Forum Webmastering
- Requete sql sans doublon - Astuces et Solutions
38 réponses
lxav
Messages postés
189
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
28 juillet 2008
70
11 févr. 2008 à 21:35
11 févr. 2008 à 21:35
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.
swatt
Messages postés
26
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
27 mars 2008
11 févr. 2008 à 21:41
11 févr. 2008 à 21:41
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.
Thamior
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
47
11 févr. 2008 à 21:45
11 févr. 2008 à 21:45
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.
swatt
Messages postés
26
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
27 mars 2008
11 févr. 2008 à 22:01
11 févr. 2008 à 22:01
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
Thamior
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
47
11 févr. 2008 à 22:23
11 févr. 2008 à 22:23
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.
lxav
Messages postés
189
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
28 juillet 2008
70
11 févr. 2008 à 22:29
11 févr. 2008 à 22:29
ok ok déso j'ai jamais du php
swatt
Messages postés
26
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
27 mars 2008
11 févr. 2008 à 22:36
11 févr. 2008 à 22:36
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
Thamior
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
47
12 févr. 2008 à 10:03
12 févr. 2008 à 10:03
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.
swatt
Messages postés
26
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
27 mars 2008
12 févr. 2008 à 19:45
12 févr. 2008 à 19:45
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???
Thamior
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
47
12 févr. 2008 à 20:01
12 févr. 2008 à 20:01
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.
swatt
Messages postés
26
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
27 mars 2008
12 févr. 2008 à 20:03
12 févr. 2008 à 20:03
lol merci je le test de suite.
swatt
Messages postés
26
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
27 mars 2008
12 févr. 2008 à 20:08
12 févr. 2008 à 20:08
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????
Thamior
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
47
12 févr. 2008 à 20:09
12 févr. 2008 à 20:09
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é !";
}
}
}
?>
swatt
Messages postés
26
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
27 mars 2008
12 févr. 2008 à 20:14
12 févr. 2008 à 20:14
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
Thamior
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
47
12 févr. 2008 à 20:21
12 févr. 2008 à 20:21
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.
Thamior
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
47
12 févr. 2008 à 20:22
12 févr. 2008 à 20:22
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.
Thamior
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
47
12 févr. 2008 à 20:26
12 févr. 2008 à 20:26
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.
swatt
Messages postés
26
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
27 mars 2008
12 févr. 2008 à 20:29
12 févr. 2008 à 20:29
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é !";
}
}
}
?>
lxav
Messages postés
189
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
28 juillet 2008
70
12 févr. 2008 à 20:30
12 févr. 2008 à 20:30
A part une virgule manquante la requête est bonne
swatt
Messages postés
26
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
27 mars 2008
12 févr. 2008 à 20:34
12 févr. 2008 à 20:34
Merci lxav
J'ai rajouté la virgule qu'il manquait à $sql = "INSERT INTO cours(_nom_cour,id_mat) VALUES ('$cours', '$id_matiere')"
mais sa m'affiche tjs le mème message
J'ai rajouté la virgule qu'il manquait à $sql = "INSERT INTO cours(_nom_cour,id_mat) VALUES ('$cours', '$id_matiere')"
mais sa m'affiche tjs le mème message