LiL'SkiSo Posté 28 Février 2006 Partager Posté 28 Février 2006 Bonjour, J'ai créé un formulaire en php pour insérer des données dans une base sql. Et après avoir tout saisi dans la page du formulaire, je clique sur "Envoyer" et il m'affiche donc le message me disant qu'il à bien été validé. Mais les données ne sont toujours pas insérés dans ma base de données MySQL ! Voilà mon fichier PHP, je ne vois pas où pourrait-il y avoir des erreurs :'( ! <?// Récupération des données du formulaires$Callsign = $_POST['Callsign'];$Jour = $_POST['Jour'];$Mois = $_POST['Mois'];$Annee = $_POST['Annee'];$Type = $_POST['Type'];$Appareil = $_POST['Appareil'];$Immat = $_POST['Immat'];$Carburant = $_POST['Carburant'];$Unit = $_POST['Unit'];$FlightNb = $_POST['N_de_Vol'];$Departure = $_POST['Departure'];$Arrival = $_POST['Arrival'];$Alternative = $_POST['Alternative'];$Landed = $_POST['Landed'];$Distance = $_POST['Distance'];$Kts = $_POST['Kts'];$Altitude = $_POST['Altitude'];$Passagers = $_POST['Passagers'];$Cargo = $_POST['Cargo'];$Nature = $_POST['Nature'];$DepHeure = $_POST['DepHeure'];$DepMin = $_POST['DepMin'];$TimeHeure = $_POST['TimeHeure'];$TimeMin = $_POST['TimeMin'];$Route = $_POST['Route'];$Commentaires = $_POST['Commentaires'];// Opération de concaténage pour assembler les Dates et Heures$Date = "$Annee'-'$Mois'-'$Jour' '$DepHeure':'$DepMin':00'";$Duree = "$TimeHeure':'$TimeMin':00'";// Connexion à la base de donnée$connexion = mysql_connect("sql.free.fr","va.skyjet","xxxxxx");mysql_select_db("va.skyjet",$connexion);// On créer la requête SQL, pour ensuite l'envoyer$requete = "INSERT INTO rapport VALUES('','$Date','$Callsign','$Type','$Appareil','$Immat','$Carburant','$Unit','$FlightNb','$Departure','$Arrival','$Alternative','$Landed','$Distance','$Kts','$Altitute','$Passagers','$Fret','$Nature','','$Duree','$Route','$Commentaires','0')";mysql_query($requete);echo "Les données ont été envoyés !";// Fermeture de la connexion vers Mysqlmysql_close();?> Quelqu'un peut-il m'aider SVP ?? Merci ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
K-Ola Posté 28 Février 2006 Partager Posté 28 Février 2006 (modifié) Déjà ,je pense que tu as un probléme dans ton insert,il faut qu'il soit de la forme : INSERT INTO ta_table(champs1,champs2,champs3,[...]) VALUES('valchamps1','valchamps2','valchamps3',[...]) Modifié 28 Février 2006 par K-Ola Lien vers le commentaire Partager sur d’autres sites More sharing options...
LiL'SkiSo Posté 28 Février 2006 Auteur Partager Posté 28 Février 2006 Ca marche si je met INSERT INTO ma_table (*) VALUES(......) ? Parce que je dois tout insérer et j'ai plus de je ne sais combien de champs ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
K-Ola Posté 28 Février 2006 Partager Posté 28 Février 2006 (modifié) Ta méthode fonctionne,mais celle ci est beaucoup plus souple et évite beaucoup d'erreurs dûes à la structure de la base pour le ma_table(*) je ne suis pas sur que ca fonctionne Modifié 28 Février 2006 par K-Ola Lien vers le commentaire Partager sur d’autres sites More sharing options...
LiL'SkiSo Posté 28 Février 2006 Auteur Partager Posté 28 Février 2006 Ok, j'ai essayé comme tu me l'a dis, en réecrivant toutes les colonnes, mais ça me rajoute toujours rien ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
K-Ola Posté 28 Février 2006 Partager Posté 28 Février 2006 Vérifie aussi que tu autorise la valeur Null la ou tu en a inséré dans ta base de donnée Lien vers le commentaire Partager sur d’autres sites More sharing options...
LiL'SkiSo Posté 28 Février 2006 Auteur Partager Posté 28 Février 2006 C'est à dire ? La première valeur Null c'est un auto_increment appelé "ID" Lien vers le commentaire Partager sur d’autres sites More sharing options...
LiL'SkiSo Posté 28 Février 2006 Auteur Partager Posté 28 Février 2006 Ah sauf si tu me dis pour celle en plein milieu, effectivement, c'était un champ vide, j'ai supprimé la colonne ainsi que le '' dans mon INSERT INTO Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 1 Mars 2006 Partager Posté 1 Mars 2006 tu peux éventuellement transformer ton mysql_query($requete); en mysql_query($requete) or die(mysql_error()); Qui te renverra l'erreur renvoyée par ta bdd. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sonia Gazil Posté 1 Mars 2006 Partager Posté 1 Mars 2006 Je pense qu'en fait, le problème vient de tes concaténations : $Date = "$Annee'-'$Mois'-'$Jour' '$DepHeure':'$DepMin':00'";$Duree = "$TimeHeure':'$TimeMin':00'"; Ce code n'est pas correct car ta variable date contient des simples quotes. Donc du coup, ça perturbe totalement ta requête. Il faudrait faire : $Date = $Annee . '-' . $Mois . '-' . $Jour . ' ' . $DepHeure . ':' . $DepMin . ':00';$Duree = $TimeHeure . ':' . $TimeMin . ':00'; Normalement, ça devrait fonctionner. S'il y a encore une erreur, vérifie le format de tes champs DATE. Et surtout, quand tu developpes, utilise toujours mysql_error() Lien vers le commentaire Partager sur d’autres sites More sharing options...
LiL'SkiSo Posté 1 Mars 2006 Auteur Partager Posté 1 Mars 2006 Bah la tu m'épate Sonia, à chaque fois que j'ai un problème, c'est toi qui trouve la solution ! C'est vrai que ça venait de la concaténation ! En fait je l'ai su juste avant que tu poste parce qu'en fait j'ai fait un "echo" sur la requête pour savoir ce qu'il insérait réellement, et j'ai vu que les dates avaient des mauvaises syntaxes et que même par phpmyadmin il ne voulait pas l'insérer. Et en fait j'ai essayé de refaire ma concaténation mais avec ce code : $Date = "$Annee-$Mois-$Jour $DepHeure:$DepMin:00";$Duree = "$TimeHeure:$TimeMin:00"; Et puis maintenant ça marche ! Merci de m'avoir aidé à tous, et à bientôt ! PS : Merci Captain_Torche je pense que le mysql_error va m'aider (vu que j'ai souvent des erreurs) ! @+++ ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant