Insertion dans une table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Insertion dans une table

par nasbe » 03 juin 2008, 15:21

Ok, j'ai corriger, mais ce ne change pas mon problème, lorsque j'appuie sur le bouton ajouter, je suis rediriger vers ma page d'accueil et aucune nouvelle entree figure dans ma table.

Voilà si jamais le code de ma page index, le problème vient peut-etre de là.

Code : Tout sélectionner

<? // Recupere les données en GET ou POST lorsque le parametre du server RegisterGlobals est a Off session_start(); extract($_GET); extract($_POST); $hostddb = "localhost"; $loginddb = "root"; $passddb = ""; $baseddb = "escobar"; $mysql_connect=mysql_connect($hostddb,$loginddb,$passddb); mysql_select_db($baseddb, $mysql_connect); if(isset($pswd)) { if(mysql_num_rows(mysql_query("SELECT * FROM personne WHERE Pseudo='".addslashes($login)."' AND Password = '".addslashes($pswd)."'"))==1) { $_SESSION['seslogid'] = $login; header("Location: ".$_SERVER['HTTP_REFERER']); } else { $errorlogin = 1; } } if(isset($logoff)) { session_destroy(); $_SESSION = array(); header("Location: ".$_SERVER['HTTP_REFERER']); } ?>

par Ryle » 03 juin 2008, 14:43

Ce sont les valeurs des variables que l'on met entre apostrophes (varchar, date, text, ...) pas les noms des colonnes ;)
$RequeteInsertion = "INSERT INTO '.$table.' (NomSoiree, Date, HeureDebut, HeureFin, Musique, NomDJ, Flyers) VALUES('$NomSoiree','$Date','$HeureDebut','$HeureFin','$Musique','$NomDj','$Flyers')";

par nasbe » 03 juin 2008, 14:18

J'ai suivi tes conseils mais apparrement aucun changement, je commence a ne plus rien y comprendre, j'ai essayé beaucoup de chose différente. Voilà si jamais ma table soiree dans MySQL

NomSoirre (varchar100), Primary Key
Date (date)
HeureDebut (time)
HeureFin (time)
Musique (varchar 50)
NomDJ (varchar 20)
Flyers (BLOB)

Code : Tout sélectionner

<?PHP // Ajout d'une soirée en cas d'appui sur le bouton Ajouter if (isset ($_REQUEST['Ajouter'])){ // Connexion à la base de donnée $bd ='escobar'; $lien = mysql_pconnect ('localhost', 'root', ''); mysql_select_db($bd); $table = 'soiree'; // Si le l'authentification est incorrecte on affiche un message if ($lien == FALSE){ echo "connexion impossible à la base $bd"; } else { // Récupération des données rentrées par l'utilisateur $NomSoiree = $_REQUEST['NomSoiree']; $Date = $_REQUEST['Date']; $HeureDebut = $_REQUEST['HeureDebut']; $HeureFin = $_REQUEST['HeureFin']; $Musique = $_REQUEST['StyleMusical']; $NomDj = $_REQUEST['NomDj']; $Flyers = $_REQUEST['Flyers']; // Test de vérification des champs, si l'un des deux est vide, on affiche un message if(empty($NomSoiree)){ echo "Le champ de nom de la soiree n'as pas ete renseigne"; } else if (empty($Date)){ echo ("la date n'a pas ete renseigne"); } else { // Sinon on exécute la requête d'insertion $RequeteInsertion = "INSERT INTO '.$table.' ('NomSoiree', 'Date', 'HeureDebut', 'HeureFin', 'Musique', 'NomDJ', 'Flyers') VALUES('$NomSoiree','$Date','$HeureDebut','$HeureFin','$Musique','$NomDj','$Flyers')"; mysql_query($RequeteInsertion); echo "$RequeteInsertion"; mysql_error(); } } // Fermeture de la base mysql_close(); } ?> <html> <body> <h3>Administration des soirées </h3> <form Method="POST" Action="<?echo $_SERVER["PHP_SELF"]?>"> <fieldset> <legend>Ajouter une soirée</legend> <table> <tr></tr> <tr> <td>Nom de la soirée</td> <td><input type="texte" name="NomSoiree" size="40"</td> </tr> <tr> <td>Date</td> <td><input type="texte" name="Date" size="40"</td> </tr> <tr> <td>Heure de début</td> <td><input type="texte" name="HeureDebut" size="40"</td> </tr> <tr> <td>Heure de fin</td> <td><input type="texte" name="HeureFin" size="40"</td> </tr> <tr> <td>Style musical</td> <td><input type="texte" name="StyleMusical" size="40"</td> </tr> <tr> <td>Nom du DJ</td> <td><input type="texte" name="NomDJ" size="40"</td> </tr> <tr> <td>Flyers</td> <td><input type="texte" name="Flyers" size="40"</td> </tr> <tr> <td></td> <td><input type ="submit" name = "Ajouter" value="Ajouter"></td> </tr> </table> </fieldset> </form> </body> </html>

par Ryle » 02 juin 2008, 23:49

Test le résultat de tes mysql_query() et en cas d'erreur affiche la valeur de mysql_error().

En effet, php se contente juste de transmettre une chaine de caractère à ta base mysql. Si une erreur survient lors de l'exécution de la requête (problème de syntaxe, nom de colonne ambigu, nombre de paramètres erronné, etc) php n'en sait rien et c'est à toi de gérer les problèmes éventuels, le mieux pour cela étant d'avoir le message d'erreur retourné par ta base de données :)

En l'occurence, c'est une erreur de syntaxe dans ta requête. Tu peux également afficher la requête générée et vérifier directement (ou en la jouant dans MySQL ou phpMyAdmin) si elle n'est pas erronée, genre s'il ne manque pas une apostrophe ou une parenthèse quelque part... ;)

Insertion dans une table

par nasbe » 02 juin 2008, 20:15

Bonjour,

J'ai réalisé ce code en PHP pour ajouter des données dans ma table. Le problème est le suivant :

Lorsque je renseigne mes champs et que j'appuie sur le bouton ajouter, rien ne se passe. Aucune insertion dans ma table, je n'ai pas de message d'erreur non plus. Si quelqu'un aurait une idée, je le remercie d'avance.

Code : Tout sélectionner

<?PHP extract($_GET); extract($_POST); $hostddb = "localhost"; $loginddb = "root"; $passddb = ""; $baseddb = "escobar"; $mysql_connect=mysql_connect($hostddb,$loginddb,$passddb); mysql_select_db($baseddb, $mysql_connect); // Ajout d'une soirée en cas d'appui sur le bouton Ajouter if (isset ($_REQUEST['AjouterSoiree'])){ // Connexion à la base de donnée $table = 'soiree'; // Si le l'authentification est incorrecte on affiche un message if ($lien == FALSE){ echo "connexion impossible à la base $bd"; } else { // Récupération des données rentrées par l'utilisateur $NomSoiree = $_REQUEST['NomSoiree']; $Date = $_REQUEST['Date']; $HeureDebut = $_REQUEST['HeureDebut']; $HeureFin = $_REQUEST['HeureFin']; $Musique = $_REQUEST['StyleMusical']; $NomDj = $_REQUEST['NomDj']; $Flyers = $_REQUEST['Flyers']; // Sinon on exécute la requête d'insertion $RequeteInsertionSoiree = "INSERT INTO $table VALUES ( '".addslashes($NomSoiree)."', '".addslashes($Date)."', '".addslashes($HeureDebut)."', '".addslashes($HeureFin)."', '".addslashes($Musique)."', '".addslashes($NomDJ)."', '".addslashes($Flyers); $result = mysql_query($RequeteInsertionSoiree); if($result) echo "Bravo, l'enregistrement est effectue"; else echo "une erreur est survenue, merci de réessayer plus tard."; } // Fermeture de la base mysql_close(); } ?> <?PHP // Ajout d'une manifestation en cas d'appui sur le bouton Ajouter if (isset ($_REQUEST['AjouterManif'])){ // Connexion à la base de donnée $bd ="escobar"; $lien = mysql_pconnect ("localhost", "root", ""); mysql_select_db($bd); $table = 'manifestation'; // Si le l'authentification est incorrecte on affiche un message if ($lien == FALSE){ echo "connexion impossible à la base $bd"; } else { // Récupération des données rentrées par l'utilisateur $NomManif = $_REQUEST['NomManif']; $DescriptionManif = $_REQUEST['DescriptionManif']; $HeureManif = $_REQUEST['HeureManif']; $Date = $_REQUEST['DateManif']; // Sinon on exécute la requête d'insertion $RequeteInsertionManif = "INSERT INTO $table VALUES('','$NomManif','$DescriptionManif','$HeureManif','$DateManif')"; mysql_query($RequeteInsertionManif); } // Fermeture de la base mysql_close(); } ?>