Requète sql
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!!!
Configuration: Windows Vista Internet Explorer 7.0
38 réponses
Deux tables, Matières et Cours, doivent être reliées par une clé étrangère afin d’associer chaque cours à une matière et d’insérer ces données depuis un formulaire PHP. Plusieurs propositions préconisent de créer id_matiere dans Matières et d’ajouter id_mat dans Cours comme clé étrangère, puis de définir FOREIGN KEY(id_mat) REFERENCES Matières(id_matiere) pour lier les deux tables. Des exemples d’insertion montrent d’utiliser INSERT INTO cours(nom_cours, id_mat) VALUES ('probabilite', 1) et de corriger les noms de colonnes ou les fautes de frappe dans le formulaire PHP. En cas d’erreurs PHP, les messages d’erreur comme errno 150 sur les clés étrangères apparaissent et exigent une correspondance exacte des types et des noms de colonnes.
-
Moi je m'y connais en php mais malheureusement pas trop d'après ce que je voi.
-
Non j'ai essayé le language ajax mais j'y ai rien compris
-
Bonjour,
Tu as réussi à faire ce que tu voulais ?
Thamior. -
Là j'ai essayer une table avec plusieur attribut mais j'ai une erreur de phpmyadmin il me met sa:
#1005 - Can't create table '.\giggles\test.frm' (errno: 150)
Voici ma table:
CREATE TABLE test
(
id_kids int(10) unsigned not null auto_increment,
description varchar(200) NULL,
description_fr varchar(200) NULL,
quantity smallint(4) unsigned NOT NULL default '1',
price decimal(6,2) unsigned NOT NULL default '0.00',
instock enum('y','n') NOT NULL default 'y',
visible enum('true','false') NOT NULL default 'true',
id_mat int(5) not null,
Primary Key (id_kids),
FOREIGN KEY(id_mat) REFERENCES kids(id_kids1)
) -
ok merci thamior je vais jeté un coup d'oeil du coté de l'ajax mais j'y connè rien en ajax.
Donc essaye de m'adapter le code mème si c'est pour demain soir, sa fait rien.
Merci
David -
Je vois ce que tu veux faire.
Je te conseil de regarder du côté de l'Ajax.
Si tu ne trouves pas, je t'adapterai du code que j'ai pour que ça fonctionne mais pas avant demain soir.
Thamior. -
cool la sa m'affiche bien les données que j'ai rajoté manuellement a phpmyadmin c'est a dire les matière dans le 1er cadre déroulant mè kan je veu entré le cour que je veu associé a une matière sa le rajoute pas.
Eh ben lorsqu'un problème est réglé un autre appareil.
lol -
Le correctif que j'ai testé avec un jeu d'essais :
if($page == null)
{
?>
<form action="test.php?page=ajout_cours" method="post">
<select name="matiere">
<?php
$sql = "select id_matiere, nom_matiere from matiere";
$exe = mysql_query($sql, $connexion); // tu executes la requete
$rt = mysql_fetch_assoc($exe);
if($rt)
{
while($rt)
{
echo "<option value='$rt[id_matiere]'>$rt[nom_matiere]</option>";
$rt = mysql_fetch_assoc($exe);
}
}
?>
</select>
<input type="text" name="cours" />
<input type="submit" value="Envoyer" />
<?php
} -
Non sa me di pas ce que ces phrase, on faite sa m'affiche ma page avec mon formulaire avec 2 cadres, dans le premiers cadre il doit apparaitre les matières et dans le second cadres je dois mettre le cours que je veux associé avec la matière.
Comme je te disais précédemment j'ai ajouté des données a ma table matière manuellement mais le truc cè que les données que j'ai rajouté apparaisse pas dans le cadre matière.
Je pense que c'est un prob de connexion avec la bd c'est bizarre car je pense que ton programme est bon -
As tu as l'une des phrase suivante qui s'affiche :
- Désolé, connexion à localhost impossible
ou
- Désolé accès à la base g impossible
Si c'est le cas, vérifie les données concernant le message d'erreur.
Thamior. -
En faite il y a pas de connexion avec ma data base sa me donne le menu déroulant sans rien dedans alors k jè déja entré des données dans ma db via phpmyadmin
-
Qu'est-ce qui ne marche pas exactement ?
Thamior. -
Reslt thamior j'ai fait les changement que tu ma di et sa ne fait tj rien
-
Modifie les lignes suivantes :
$exe = mysql_query($sql); // tu executes la requete
par :
$exe = mysql_query($sql, $connexion); // tu executes la requete
et
$exe = mysql_query($sql); // tu executes la requete
par
$exe = mysql_query($sql, $connexion); // tu executes la requete
Normalement avec ça, tout devrait marché.
Thamior. -
jè fè mon programme comme ceci:
<?php
$connexion = mysql_connect(localhost,swatt_971,dfoxys);
if(!$connexion)
{
echo "Désolé, connexion à $serveur impossible\n";
exit;
}
if(!mysql_select_db(g,$connexion))
{
echo "Désolé accès à la base $base impossible\n";
exit;
}
if($page == null)
{
?>
<form action="items_actions.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" />
<?php
}
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é !";
}
}
}
?>
J'ai rajouté par phpmyadmin des données dans la table matières, mais elle ne me l'affiche pa dans le cadre roulant de ma page.
Pourquoi???? -
Pour te connecter à la base de données :
$connexion = mysql_connect($serveur,$nom,$password);
if(!$connexion)
{
echo "Désolé, connexion à $serveur impossible\n";
exit;
}
if(!mysql_select_db($base,$connexion))
{
echo "Désolé accès à la base $base impossible\n";
exit;
}
avec :
$serveur : le serveur de ta base de données (en local, localhost)
$nom : ton login (en local, root)
$password : le password qui va avec (en local, "")
$base : le nom de la base
Thamior. -
Merci sa fonctionne là et maintenant comment je fait ou dans le programme je dois mettre le code pour accéder à ma base de donnée
-
Petit 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" />
<?php
}
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é !";
}
}
?>
[Désolé pour le flood, j'ai un petit soucis avec le navigateur...] -
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 -
A part une virgule manquante la requête est bonne
- 1
- 2