Requete SQL qui ne fontionne pas en php

Résolu/Fermé
adamson - 3 déc. 2009 à 20:12
 adamson - 4 déc. 2009 à 14:20
Bonjour,
j' ai un petit soucie avec mon Script. j'ai un simple formulaire avec du "Textarea" et un champs "Select" avec 4 "option" et mon "Submit" , ensuite j'ai une partit pour enregistrer mes donnes dans ma BDD .
mon soucie ces que quand je renseigne les champs de mon formulaire mon n'entrer n'est pas créer mais se que je comprend pas ces que si je ne les renseignes pas mon entrer est crée mes bien sur elle est vide
voila mon Script

<?php

if (isset($_POST['question']))

{
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("gestion_btb"); // Sélection de la base
$retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM accueil");
$donnees = mysql_fetch_array($retour);

$id = $donnees['nb_messages'] + "1" ;
$question = $_POST['question'] ;
$choix_1 = $_POST['choix_1'] ;
$choix_2 = $_POST['choix_2'] ;
$choix_3 = $_POST['choix_3'] ;
$choix_4 = $_POST['choix_4'] ;
$reponse = $_POST['choix_nbr'];


mysql_query("INSERT INTO accueil VALUES ('$id','$question','$reponse','1','$choix_1','$choix_2','$choix_3','$choix_4','1','2','3','4')");

echo 'ok';

}
else
{
?>
<form method="post" action="save_btb.php">

<span class="titre_save_btb">Question :</span></br>
<textarea name="question" rows="4" cols="60"> </textarea> </br></br>
<span class="titre_save_btb">Choix 1 :</span></br>
<textarea name="choix_1" rows="4" cols="60"> </textarea> </br></br>
<span class="titre_save_btb">Choix 2 :</span></br>
<textarea name="choix_2" rows="4" cols="60"> </textarea> </br></br>
<span class="titre_save_btb">Choix 3 :</span></br>
<textarea name="choix_3" rows="4" cols="60"> </textarea> </br></br>
<span class="titre_save_btb">Choix 4 :</span></br>
<textarea name="choix_4" rows="4" cols="60"> </textarea> </br></br>
<span class="titre_save_btb">Choix de la bonne reponse :</span></br>
<select name="choix_nbr">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select></br>



MERCI

<input type="submit" value="valider">

</form>
<?php
}
?>
A voir également:

5 réponses

Bonjour

Si les données ne sont pas insérées quand tu remplis les champs c'est très probablement que les valeurs contiennent des apostrophes ou d'autres caractères spéciaux.
Protège tous tes champs texte avec mysql_real_escape_string. :
$question = mysql_real_escape_string($_POST['question']) ;
(idem pour les autres champs)
Sinon je suis à peu près d'accord avec Pilow sur les autres points, sauf celui de fermer la balise PHP au milieu d'un else. C'est parfaitement normal, il n'y a aucune raison de trouver ça 'pas top'.
1
Pilow Messages postés 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 71
3 déc. 2009 à 21:54
else
{
?>
<form method="post" action="save_btb.php">


Deja d'apres moi ça c'est pas top de fermer des balises php en plein milieu d'un else

mais le pb ne vient pas de la surement

Est tu sur que tu as bien indiqué tous les champs dans ton insert into ? si non tu dois indique apres values les champs que tu remplis

$id = $donnees['nb_messages'] + "1" ;

Si tu veux faire une addtion les "" autour du 1 ne sont pas necessaire je crois
0
Pilow Messages postés 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 71
3 déc. 2009 à 22:23
Le père il m'aime pas :(

Pourtant j'avais déjà eu des problèmes sur ça alors je croyais :/
0
Si si je t'aime bien Pilow :-). D'ailleurs je dis bien que je suis d'accord sur presque tout. Mais je ne veux pas qu'Adamson rajoute des erreurs en essayant de corriger quelque chose à ce niveau là alors que ce n'est pas le problème.
0

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

Posez votre question
merci A vous, la solution du "mysql_real_escape_string" fonctionne bien ,
encore merci
0