Page 1 sur 1

Problème INSERT

Posté : 09 août 2006, 17:20
par dunbar
Bonjour,

J'essaye d'introduire des données dans une TABLE mais cela fonctionne bizarement
$date = $_POST["date_realisation"];
$date2 = $_POST["date_encodage"];
$user = $_POST["user"];
$ref = $_POST["ref"];
$adr = $_POST["adr"];
$code = $_POST["postal"];
$localite = $_POST["loca"];
$address_mac = $_POST['mac'].":".$_POST['mac'].":".$_POST['mac'].":".$_POST['mac'].":".$_POST['mac'].":".$_POST['mac'] ;
$tech = $_POST["technicien"];
$heure_debut = $_POST['ha1'].":".$_POST['ha2'];
$heure_fin = $_POST['hd1'].":".$_POST['hd2'];
$commentaire = $_POST['com'];








/********************************************************************************
Insertion dans la base
********************************************************************************/

                                        $sql="INSERT INTO prestation_beta (date_realisation,  date_encodage, nom_utilisateur, ref_client, 
adr_client, code_postal, commune, adr_modem, technicien,heure_debut, heure_fin, commentaire) VALUES";
                                        $sql= "('$date', '$date2', '$user', '$ref', '$adr', '$code', '$localite
', '$address_mac', '$tech', '$heure_debut', '$heure_fin', '$commentaire')";

                                        $insert = mysql_query($sql) or die (mysql_error());
Il ne prend pas les champs date, et dans d'autre champs j'ai Array au lieux des données encoder ????

Qui pourrais me dire ou est mon erreur

Merci

Posté : 09 août 2006, 17:23
par albat
Moi, je remplacerais :
$sql = "('$date', '$date2', '$user', '$ref', '$adr', '$code', '$localite', '$address_mac', '$tech', '$heure_debut', '$heure_fin', '$commentaire')"; 
par :
$sql .= "('$date', '$date2', '$user', '$ref', '$adr', '$code', '$localite', '$address_mac', '$tech', '$heure_debut', '$heure_fin', '$commentaire')"; 
:wink:
Et n'oublie pas de prévoir une espace après VALUES...

Posté : 09 août 2006, 17:28
par dunbar
Moi, je remplacerais :
$sql = "('$date', '$date2', '$user', '$ref', '$adr', '$code', '$localite', '$address_mac', '$tech', '$heure_debut', '$heure_fin', '$commentaire')"; 
par :
$sql .= "('$date', '$date2', '$user', '$ref', '$adr', '$code', '$localite', '$address_mac', '$tech', '$heure_debut', '$heure_fin', '$commentaire')"; 
:wink:
Et n'oublie pas de prévoir une espace après VALUES...
Merci mais cela ne change rien :oops:

Posté : 09 août 2006, 17:38
par Tictac
Pour ce qui est des dates , vérifier le type de champ que tu as mis dans ta base de donnée !! si tu as mis DATE , tu dois formater la date que tu veux y introduire de la façon suivante : yyyy-mm-dd !

Ensuite pour le problème où tu as ARRAY() il faut que tu approfondisse un peu !!

Posté : 09 août 2006, 17:38
par albat
Pourtant, cette deuxième ligne remplaçait la première au lieu de s'y concaténer...


Bon, si on concatène directement et si on sort les variables de la chaîne de caractères, on obtient :
$sql="INSERT INTO prestation_beta (date_realisation,
                                         date_encodage,
                                         nom_utilisateur,
                                         ref_client,
                                         adr_client,
                                         code_postal,
                                         commune,
                                         adr_modem,
                                         technicien,
                                         heure_debut,
                                         heure_fin,
                                         commentaire)
            VALUES                      ('".$date1."',
                                         '".$date2."',                                                          
                                         '".$user."',
                                         '".$ref."',
                                         '".$adr."',
                                         '".$code."',
                                         '".$localite."',
                                         '".$address_mac."',
                                         '".$tech."',
                                         '".$heure_debut."',
                                         '".$heure_fin."',
                                         '".$commentaire."')"; 
Ça donne quelque chose ?

NB : J'ai aussi remplacé $date par $date1, c'est plus sûr...

Posté : 09 août 2006, 17:38
par dunbar
Oui absolument ca je savais :lol:

Posté : 09 août 2006, 17:48
par dunbar
Pourtant, cette deuxième ligne remplaçait la première au lieu de s'y concaténer...


Bon, si on concatène directement et si on sort les variables de la chaîne de caractères, on obtient :
$sql="INSERT INTO prestation_beta (date_realisation,
                                         date_encodage,
                                         nom_utilisateur,
                                         ref_client,
                                         adr_client,
                                         code_postal,
                                         commune,
                                         adr_modem,
                                         technicien,
                                         heure_debut,
                                         heure_fin,
                                         commentaire)
            VALUES                      ('".$date1."',
                                         '".$date2."',                                                          
                                         '".$user."',
                                         '".$ref."',
                                         '".$adr."',
                                         '".$code."',
                                         '".$localite."',
                                         '".$address_mac."',
                                         '".$tech."',
                                         '".$heure_debut."',
                                         '".$heure_fin."',
                                         '".$commentaire."')"; 
Ça donne quelque chose ?

NB : J'ai aussi remplacé $date par $date1, c'est plus sûr...
Et bien non sorry :oops:

Posté : 09 août 2006, 17:50
par mere-teresa
Il ne prend pas les champs date, et dans d'autre champs j'ai Array au lieux des données encoder ????
  • Et ton champ $_POST['date_encodage'] il contient quoi ? Une date préparée pour MySQL ?
  • Est-ce que tu ne devrais pas verifier le contenu de tes variables avant de les insérer dans la requête ?

    Array c'est ce qui arrive quand on fait echo $tableau; avec une variable de type tableau.

    Fais donc un var_dump($mavar); avec toutes tes variables pour voir ce qu'elles ont dans le ventre.
[/color]

Posté : 09 août 2006, 17:55
par Henri
fais un echo de ta variable $sql puis copie la syntaxe affichée dans phpMyAdmin.

Tu auras un message d'erreur un peu plus explicite

Posté : 09 août 2006, 18:30
par dunbar
Pourtant, cette deuxième ligne remplaçait la première au lieu de s'y concaténer...


Bon, si on concatène directement et si on sort les variables de la chaîne de caractères, on obtient :
$sql="INSERT INTO prestation_beta (date_realisation,
                                         date_encodage,
                                         nom_utilisateur,
                                         ref_client,
                                         adr_client,
                                         code_postal,
                                         commune,
                                         adr_modem,
                                         technicien,
                                         heure_debut,
                                         heure_fin,
                                         commentaire)
            VALUES                      ('".$date1."',
                                         '".$date2."',                                                          
                                         '".$user."',
                                         '".$ref."',
                                         '".$adr."',
                                         '".$code."',
                                         '".$localite."',
                                         '".$address_mac."',
                                         '".$tech."',
                                         '".$heure_debut."',
                                         '".$heure_fin."',
                                         '".$commentaire."')"; 
Ça donne quelque chose ?

NB : J'ai aussi remplacé $date par $date1, c'est plus sûr...
Et bien non sorry :oops:

Eta alors pour en revenir un sujet sur lequel ns avions déjà discuté pais pas fini :lol:
ici je déclare par exemple
$ref = ['ref'];
et en réalité le champs ref de mon form est nommé exactememnt comme ceci
name = ref[1] et idem pour les autres champs
La technique est telle correct ?

Merci

Posté : 09 août 2006, 18:41
par dunbar
Il ne prend pas les champs date, et dans d'autre champs j'ai Array au lieux des données encoder ????
  • Et ton champ $_POST['date_encodage'] il contient quoi ? Une date préparée pour MySQL ?
  • Est-ce que tu ne devrais pas verifier le contenu de tes variables avant de les insérer dans la requête ?

    Array c'est ce qui arrive quand on fait echo $tableau; avec une variable de type tableau.

    Fais donc un var_dump($mavar); avec toutes tes variables pour voir ce qu'elles ont dans le ventre.
[/color]
en fessant comme tu me conseille volà par exemple se qu'il me retourne

Code : Tout sélectionner

array(1) { [1]=> string(0) "" } string(1) ":" string(1) ":" string(0) "" string(35) "Array:Array:Array:Array:Array:Array" array(1) { [1]=> string(0) "" } array(1) { [1]=> string(0) "" } array(1) { [1]=> string(0) "" } array(1) { [1]=> string(0) "" }
cela voudrais dire quoi ?
Merci

Posté : 09 août 2006, 19:49
par mere-teresa
Peux tu faire le code suivant stp ? Et nous dire ce que tu obtiens ?
echo '<pre>';
var_dump($_POST);
echo '</pre>';

Posté : 09 août 2006, 19:53
par dunbar
Peux tu faire le code suivant stp ? Et nous dire ce que tu obtiens ?
echo '<pre>';
var_dump($_POST);
echo '</pre>';
J'obtiens ceci

Code : Tout sélectionner

NULL string(1) ":" string(1) ":" NULL string(5) ":::::" NULL NULL NULL NULL NULL NULL array(0) { }
Merci