Prendre l'id d'un autre table pour l'utilise dans un autre table

touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016 - Modifié par jordane45 le 15/07/2014 à 10:53
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016 - 16 juil. 2014 à 00:54
bonjour,
je suis en train de faire un quiz formulaire et je suis bloque au niveau de l'extraction de l'id (idquiz) de la table quiz dont j'ai besoin dans la table question et je ne sais pas comment le corriger :/ l'erreur ce presente dans cette ligne
<input type="hidden" name="idquiz" value="<?php echo  "$_GET['id']" ?> />


voila c'est le code :
<body>

<form action="./question.php" method="post" >

tapez votre question<input type="textarea" name="titreq" /><br>
type de question <SELECT name="type" value="choix multiple">
<OPTION value="text">text</OPTION>
<OPTION value="choix multiple">choix multiple</OPTION>
<option value="case a chocher">case a cocher</option>
</SELECT><br>
<input type="hidden" name="idquiz" value="<?php echo  "$_GET['id']" ?> />
<input type="submit" value="valider" name="valider" />
</form>
<?php
 
$connection=mysql_connect("localhost","root",""); 
if(!$connection){
 die('Erreur de connection '.mysql_error());}
mysql_select_db('stage',$connection); 
$titreq=$_POST['titreq'];
$type=$_POST['type'];
$idquiz=$_POST['idquiz'];
               
    $reqq="INSERT INTO question(titreq,type,idquiz) VALUES ('$titreq','$type','$idquiz')";
             $sqll=mysql_query($reqq);
             $var= mysql_insert_id(); 
   
 if($reqq)
 echo("votre question est ajoute");
 else die("Erreur".mysql_error());
 
 
?>



</body>


merci pour votre aide ;)

5 réponses

jordane45 Messages postés 38244 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 octobre 2024 345
15 juil. 2014 à 10:54
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Message édité pour ajouter la coloration syntaxique.
0
jordane45 Messages postés 38244 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 octobre 2024 345
15 juil. 2014 à 10:55
Bonjour,

Tu as oublié des guillemets à la fin et mis en trop au milieu je pense...

<input type="hidden" name="idquiz" value="<?php echo  $_GET['id'] ?>" />


Tu dois aussi pouvoir l'écrire "sans " le echo :

<input type="hidden" name="idquiz" value="<?=$_GET['id']?>" />

0
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016
Modifié par touta_touta le 15/07/2014 à 11:34
oui ,c'est vrai j'ai la corrige mais reste d'autres erreur ,les donnes n'arrivent pas a etre stocke dans la table question ,et j'ai toujours la meme erreur au niveau de la recupération des champs du formulaire 
<code>$titreq=$_POST['titreq'];
$type=$_POST['type'];
$idquiz=$_POST['idquiz'];
il m'affiche:

Notice: Undefined index: titreq in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\quiz\question.php on line 27

Notice: Undefined index: type in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\quiz\question.php on line 28

Notice: Undefined index: idquiz in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\quiz\question.php on line 29
votre question est ajoute
0
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016
15 juil. 2014 à 11:38
je pense que j'ai trouvé l'erreur je veux le vérifier merci ;)
0
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016
15 juil. 2014 à 11:41
non encore erreur :/
0
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016
15 juil. 2014 à 11:04
ok désole je ne connait pas cette information ;) merci ^_^
0
jordane45 Messages postés 38244 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 octobre 2024 345
Modifié par jordane45 le 15/07/2014 à 14:51
Lorsque tu récupères des variables provenant de $_POST / $_GET / $_SESSION... il est conseillé de regarder avant si elles sont initialisées...

Par exemple... lorsque tu affiches ta page alors que tu n'as pas encore cliqué sur le bouton Submit... ces variables n'existent pas...
(c'est ce qui se passe actuellement...... d'où tes messages d'erreur...).


Donc pour se faire...utilises ISSET et pense aussi à ajouter un petit test pour voir si tu as envoyé le formulaire ou non...

PS : Essayes aussi de placer la récupération des tes variables au début de ton script... c'est plus propre...

<?php
// connexion à la BDD :
 $connection=mysql_connect("localhost","root",""); 
   if(!$connection){
     die('Erreur de connection '.mysql_error());
    }

   mysql_select_db('stage',$connection); 



// On vérifie que le formulaire est envoyé (submit)
if(isset($_POST['idquiz'])){
  // récupération des variables :
   $titreq=isset($_POST['titreq'])?$_POST['titreq']:'';
   $type= isset($_POST['type'])?$_POST['type']:'';
   $idquiz=isset($_POST['idquiz'])?$_POST['idquiz']:'';
        
    // Insertion en BDD:
    $reqq="INSERT INTO question(titreq,type,idquiz) 
              VALUES  (
                          '$titreq'
                         ,'$type'
                         ,'$idquiz'
               )";
             $sqll=mysql_query($reqq) or  die("Erreur".mysql_error());
            
   
 if($reqq){
     $idQ= mysql_insert_id(); 
     echo("<br>votre question est ajoute : ID=".$idQ);
 }

}

?>

<html>
<head> <title> ....</title>
</head>

<!-- -------------------------------------------- -->
<body>

<form action="./question.php" method="post" >

tapez votre question<input type="textarea" name="titreq" /><br>
type de question <SELECT name="type" value="choix multiple">
<OPTION value="text">text</OPTION>
<OPTION value="choix multiple">choix multiple</OPTION>
<option value="case a chocher">case a cocher</option>
</SELECT><br>
<input type="hidden" name="idquiz" value="<?=$_GET['id']?> />
<input type="submit" value="valider" name="valider" />
</form>
<!-- -------------------------------------------- -->
<!-- FIN DU FORMULAIRE -->
<!-- -------------------------------------------- -->



PS2 : Pense que tes champs textes peuvent contenir des caractères spéciaux.... apostrophes...accents.....
Il te faut les traiter AVANT des les insérer en BDD....
Mais là... c'est une autre question (si besoin).
Je te laisse chercher.




Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016
15 juil. 2014 à 12:07
j'ai fait comme tu ma dit il affiche encore un erreur et les donnes n'arrive pas a la table ,l'erreur: ErreurYou 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']?>' )' at line 5


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>




<form action="./question.php" method="post" >

tapez votre question<input type="textarea" name="titreq" /><br>
type de question <SELECT name="type" value="choix multiple">
<OPTION value="text">text</OPTION>
<OPTION value="choix multiple">choix multiple</OPTION>
<option value="case a chocher">case a cocher</option>
</SELECT><br>
<input type="hidden" name="idquiz" value="<?=$_GET['id']?>" />
<input type="submit" value="valider" name="valider" />
</form>
<?php

$connection=mysql_connect("localhost","root","");
if(!$connection){
die('Erreur de connection '.mysql_error());}
mysql_select_db('stage',$connection);
// On vérifie que le formulaire est envoyé (submit)
if(isset($_POST['idquiz'])){
// récupération des variables :
$titreq=isset($_POST['titreq'])?$_POST['titreq']:'';
$type= isset($_POST['type'])?$_POST['type']:'';
$idquiz=isset($_POST['idquiz'])?$_POST['idquiz']:'';


// Insertion en BDD:
$reqq="INSERT INTO question(titreq,type,idquiz)
VALUES (
'$titreq'
,'$type'
,'$idquiz'
)";
$sqll=mysql_query($reqq) or die("Erreur".mysql_error());


if($reqq){
$idQ= mysql_insert_id();
echo("<br>votre question est ajoute : ID=".$idQ);
}

}

?>




</body>
</html>

    
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38244 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 octobre 2024 345
15 juil. 2014 à 14:50

<?php
 
//Récupération de la variable passée en GET
$id=isset($_GET['id'])?$_GET['id']:'';

// Le temps des tests :
Echo "<br> ID=".$id."<br>";


// Connexion à la BDD:
$connection=mysql_connect("localhost","root","") or die('Erreur de connection '.mysql_error()); 

mysql_select_db('stage',$connection);

// On vérifie que le formulaire est envoyé (submit)
if(isset($_POST['idquiz'])){
  // récupération des variables POST:
   $titreq = isset($_POST['titreq']) ? $_POST['titreq'] : '';
   $type  = isset($_POST['type'])  ?  $_POST['type']  : '';
   $idquiz = isset($_POST['idquiz']) ? $_POST['idquiz'] : '';
         

    // Insertion en BDD:
    $reqq="INSERT INTO question(titreq,type,idquiz) 
              VALUES ('$titreq'
                         ,'$type'
                         ,'$idquiz'
                         )";
             $sqll=mysql_query($reqq) or  die("Erreur".mysql_error()."<br><b> REQUETE:<br></b>".$reqq);
            
   
 if($reqq){
     $idQ= mysql_insert_id(); 
     echo("<br>votre question est ajoute : ID=".$idQ);
 }

}

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>

<form action="./question.php" method="post" >

tapez votre question<input type="textarea" name="titreq" /><br>

<?php
$selected1 = ($type=="text")?"selected='selected'":'';
$selected2 = ($type=="choix multiple")?"selected='selected'":'';
$selected3 = ($type=="case a chocher")?"selected='selected'":'';

echo '<label>type de question </label>
   <selectname="type" >
       <option value="text" $selected1 >text</option>
       <option value="choix multiple" $selected2 >choix multiple</option>
       <option value="case a chocher" $selected3 >case a cocher</option>
   </select>
<br>';
?>
<input type="hidden" name="idquiz" value="<?=$id?>" />
<input type="submit" value="valider" name="valider" />
</form>
         


</body>
</html>



Dis moi si ça marche mieux.... et sinon.. ce que ça t'affiche..

Et si tu as encore un message d'erreur.... marque le moi en ENTIER.
0
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016
16 juil. 2014 à 00:49
bonsoir non ça ne fonctionne pas ,rien ne fonctionne ,j'ai fait des modification :

<body>

<?php
//connection a la base :p
$connection=mysql_connect("localhost","root","");
if(!$connection){
die('Erreur de connection '.mysql_error());}
mysql_select_db('stage',$connection);


//recuperation des variable du quiz
if(isset($_POST['titre'])&& isset($_POST['description'])&& isset($_POST['nbre'])){
$titre=$_POST['titre'];
$description=$_POST['description'];
$nbre=$_POST['nbre'];
//insertion en bdd
$req="INSERT INTO quiz(titre,description,nbre) VALUES ('$titre','$description','$nbre')";
$sql=mysql_query($req);
$idquiz= mysql_insert_id();


if($req){
$idquiz= mysql_insert_id();
}



// On vérifie que le formulaire est envoyé (submit)
if(isset($_POST['idquiz'])&& isset($_POST['titreq'])&& isset($_POST['type'])){
// récupération des variables :
$titreq=$_POST['titreq'];
$type=$_POST['type'];
$idquiz=$_POST['idquiz'];


// Insertion en BDD:
$reqq="INSERT INTO question(titreq,type,idquiz)
VALUES ('$titreq','$type','$idquiz' )";
$sqll=mysql_query($reqq) or die("Erreur".mysql_error());


if($reqq){
$idq= mysql_insert_id();

echo("<br>votre question est ajoute : ID=".$idq);
}

}}

?>
<form action="./question.php" method="post" >

tapez votre question<input type="textarea" name="titreq" /><br>
type de question <SELECT name="type" value="choix multiple">

<OPTION value="text">text</OPTION>
<OPTION value="choix multiple">choix multiple</OPTION>
<option value="case a chocher">case a cocher</option>
</SELECT><br>
<input type="text" name="idquiz" value="<?php echo $idquiz?>" />
<input type="submit" value="valider" name="valider" />
</form>




</body>
</html>


cela m'affiche :<br /><b>Notice</b>: Undefined variable: idquiz in <b>C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\quiz\question.php</b> on line <b>67</b><br /> et le question n'arrive pas a la base .
0
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016
16 juil. 2014 à 00:52
votre code m'affiche ça :
Notice: Undefined variable: type in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\quiz\forum.php on line 67

Notice: Undefined variable: type in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\quiz\forum.php on line 68

Notice: Undefined variable: type in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\quiz\forum.php on line 69
type de question
0
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016
Modifié par jordane45 le 8/10/2014 à 02:39
line 67->68
$selected1 = ($type=="text")?"selected='selected'":'';
$selected2 =($type=="choix multiple")?"selected='selected'":'';
$selected3 =($type=="case a chocher")?"selected='selected'":'';
0
Rejoignez-nous