Problème INSERT

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 : Problème INSERT

par dunbar » 09 août 2006, 19:53

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

par mere-teresa » 09 août 2006, 19:49

Peux tu faire le code suivant stp ? Et nous dire ce que tu obtiens ?
echo '<pre>';
var_dump($_POST);
echo '</pre>';

par dunbar » 09 août 2006, 18:41

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

par dunbar » 09 août 2006, 18:30

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

par Henri » 09 août 2006, 17:55

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

par mere-teresa » 09 août 2006, 17:50

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]

par dunbar » 09 août 2006, 17:48

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:

par dunbar » 09 août 2006, 17:38

Oui absolument ca je savais :lol:

par albat » 09 août 2006, 17:38

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...

par Tictac » 09 août 2006, 17:38

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

par dunbar » 09 août 2006, 17:28

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:

par albat » 09 août 2006, 17:23

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...

Problème INSERT

par dunbar » 09 août 2006, 17:20

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