Erreur requete INSERT INTO

Résolu
Salut à tous,

J'ai deux pages.
Sur la première j'affiche certaines données via un formulaire (plusieurs lignes), sur la seconde, je veux insérer ces lignes dans une nouvelle table avec une requete insert into.
J'ai donc récupéré mes valeurs et fait ma requete mais j'ai une erreur.

<?php
$id_adh =$_POST['id_adh'];
$qt_cde = $_POST['qt_cde'];
$date_commande =$_POST['date'];
$id_produit = $_POST['produit'];
$etat = $_POST['etat'];
$PVC =$_POST['PVC'];
$PA =$_POST['PA'];
$Date_L = $_POST['DL'];
$logo = $_POST['logo'];

$requete1 =mysql_query ("INSERT INTO historique_commandes (`id_adh`, `id_produit`, `PA`, `PVC`, `qt_commande`, `Etat`, `date_livraison`, `fournisseur`, `date_commande`) VALUES ('".$id_adh."', '".$id_produit."', '".$PA."', '".$PVC."', '".$qt_cde."', '".$etat."', '".$Date_L."','".$logo."','".$date_commande."'") or die ("Problème Réseau, veuillez contacter la centrale. Erreur = ".mysql_error());



Voici l'erreur:
Problème Réseau, veuillez contacter la centrale. Erreur = Erreur de syntaxe près de '' à la ligne 1

Si quelqu'un peut m'aider ce serait top!

Merci d'avance

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.


l'informatique est né pour nous faire réfléchir....

2 réponses

  1. Salut, il semblerais qu'il y ai un " en trop :

    VALUES ('".$id_adh."', '".$id_produit."', '".$PA."', '".$PVC."', '".$qt_cde."', '".$etat."', '".$Date_L."','".$logo."','".$date_commande."'")

    tu ouvres ta parenthèse avec ('" et la referme avec "'") ;)
    1. Et oui mais il faut bien que je referme le premier " devant mon insert into non?
    2. Alors il faut le mettre après la parenthèse, ou il en manque une pour fermer le value(
    3. Ah oui! C'est sur que de suite cela fonctionne mieux! :)
      J'ai encore un petit souci mais la je pense que c'est que je ne réfléchi pas assez. Du coup sur ma première page j'ai 3 lignes d'afficher mais ma requete d'insertion ne m'en prend qu'une. Comment cela se fait?
      Merci en tout cas pour la parenthèse :)
    4. De rien !

      Ta requête d'insertion est-elle aussi dans une boucle while ? si non alors c'est normal que le script ne s'execute qu'une seule fois ^^
  2. Modérateur
    Bonjour,

    Peux tu essayer ceci :
    
    
    $sql = "INSERT INTO historique_commandes (id_adh, id_produit, PA, PVC, qt_commande, Etat, date_livraison, fournisseur, date_commande) 
                                      VALUES ('$id_adh', '$id_produit', '$PA', '$PVC', '$qt_cde', '$etat', '$Date_L','$logo','$date_commande')";
    
    $requete1 = mysql_query ($sql) or die ("Problème Réseau, veuillez contacter la centrale. Erreur = ".mysql_error() . "<br> REQUETE :<br>".$sql);
    
    


    Au passage ... pour la récupération de tes données, utilise la méthode ternaire :
    $id_adh = isset($_POST['id_adh']) ? $_POST['id_adh'] : '';
    //etc... (pour les autres variables)
    


    PS: Tu utilises l'ancienne extension MYSQL...
    Je t'invite à lire ceci : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

    1. En fait, il me manquait une parenthèse dans le values :)

      Je vais passer ma récupération en ternaire. MERCI beaucoup
    2. Modérateur
      Si la question est résolue..
      Merci de ne pas oublier de clôturer le sujet
      (en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

      Cordialement,
      Jordane
    3. Pardon je pensais l'avoir fait :)