Version complète: sur le forum Webmaster Hub : Formulaire qui fonctionne pas :'( !
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
LiL'SkiSo
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 :'( !

CODE
<?

// 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 Mysql
mysql_close();

?>


Quelqu'un peut-il m'aider SVP ??
Merci wink.gif !
K-Ola
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',[...])
LiL'SkiSo
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 !
K-Ola
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
LiL'SkiSo
Ok, j'ai essayé comme tu me l'a dis, en réecrivant toutes les colonnes, mais ça me rajoute toujours rien !
K-Ola
Vérifie aussi que tu autorise la valeur Null la ou tu en a inséré dans ta base de donnée
LiL'SkiSo
C'est à dire ?
La première valeur Null c'est un auto_increment appelé "ID"
LiL'SkiSo
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
captain_torche
tu peux éventuellement transformer ton
CODE
mysql_query($requete);

en
CODE
mysql_query($requete) or die(mysql_error());

Qui te renverra l'erreur renvoyée par ta bdd.
Sonia Gazil
Je pense qu'en fait, le problème vient de tes concaténations :

CODE
$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 :

CODE
$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() wink.gif
LiL'SkiSo
Bah la tu m'épate Sonia, à chaque fois que j'ai un problème, c'est toi qui trouve la solution wink.gif !

C'est vrai que ça venait de la concaténation hypocrite.gif !

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 :
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) !

@+++ !
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.