Requete SQL qui ne fontionne pas en php
Résolu
adamson
-
adamson -
adamson -
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
}
?>
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:
- Requete SQL qui ne fontionne pas en php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Logiciel sql - Télécharger - Bases de données
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- Jointure sql ✓ - Forum MySQL
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'.
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'.
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
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question