Voici mon probleme : une selection est fait pour choisir le cours auquelle doit etre ajoutee une sequence et avec mon code il ne m'insere pas la sequence avec l'id_cours. De plus il me dit bien mon echo"sequence ...succes.
Auriez vous une solution ?
Mon code : <?
$mysql_link = mysql_connect("localhost","root","");// Connexion à MySQL @mysql_select_db("francais")// Sélection de la base francais or die("Impossible de se connecter");
J'ai pas tout compris a la lecture du script mais bon je penses que cela doit etre une chose comme ca que tu cherches:
<?php $mysql_link = mysql_connect("localhost","root","");// Connexion à MySQL @mysql_select_db("francais")// Sélection de la base francais or die("Impossible de se connecter");
// Controle si le formulaire a été soumis, execute l'insertion, sinon affiche le formulaire if (isset($_POST['Go'])){ // J'ai rajouté une colonne Id_Seq pour avoir un identifiant unique en tant qu'index et en incrementation auto sur la table a la place de tes '' mysql_query("INSERT INTO sequences (Id_Seq,titre,id_cours) VALUES('', (select titre from cours where id_cours = ".$_POST['id_cours'].")," .$_POST['id_cours']. ")"); // test s'il y a eu une erreur lors de l'interrogation de mysql if (mysql_error() != ''){ print('Une erreur s\'est produite lors de sa soumission : '.mysql_error()); exit; }else{ echo "La séquence a été ajoutée avec succès !"; exit; } } // C'est la première fois que l'on appel le formulaire alors on l'affiche ?>
<html> <head> <title>Ajoutez une séquence</title> </head> </body> <form action="" method="post"> <br>Selectionnez votre sequence:<select name='id_cours'> <?php // Génère la liste deuis la Bdd if($mysql_link ) { $sql2 = "SELECT * FROM cours"; $query2 = mysql_query($sql2) or die( 'Erreur' ); while($result2 = mysql_fetch_array($query2)){ echo '<option value="'.$result2['id_cours'].'">'.$result2['titre'].'</option>'; } } ?> </select> <input type="submit" name="Go" value="Ajouter" /> </form> </body> </html>
Par contre j'ai pas compris pourquoi tu réenregistres dans une secondes tables les informations de la premières.
Tu devrais enregistrer uniquement l'id de la première table et les informations supplémentaires concernant la sequence
Quand j'ai créé les table je les ai créé en Int(8), not null,auto_increment.
Si tu a créé des colonne dans un type alphanumérique tu dois rajouté des guillemets autour des id.
pour info les tables que j'ai créé:
table cours :
DROP TABLE IF EXISTS `cours`; CREATE TABLE IF NOT EXISTS `cours` ( `id_cours` int(8) NOT NULL auto_increment, `titre` varchar(255) NOT NULL default '', PRIMARY KEY (`id_cours`) )
table sequences :
DROP TABLE IF EXISTS `sequences`; CREATE TABLE IF NOT EXISTS `sequences` ( `Id_Seq` int(8) NOT NULL auto_increment, `titre` varchar(255) NOT NULL default '', `id_cours` int(8) NOT NULL default '0', PRIMARY KEY (`Id_Seq`) )