IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Php Insert multiple final [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 27
    Par défaut Php Insert multiple final
    Bonjour à tous,

    j'ai un petit tableau et à part l'id de mon premier enregistrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tableau= array()
    $idmainfiche = mysql_insert_id();
    Dans mon tableau j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [0] => toto
    [1] => titi
    [2] => tata
    Du coup pour faire un INSERT multiple j'ai trouvé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $sql = "INSERT INTO fiche (id,id_ficheprincipale,id_fiche,nom) VALUES";
    foreach ($tableau as $id => $values) :
      $sql .= "('',$idmainfiche,$id,$values),";
    endforeach;
    $sql = substr ($sql,0,-1); //on enlève la dernière virgule
     
    echo $sql;
    L'echo m'indique bien une commande SQL propre mais lorsque je la lance avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    j'ai le message d'erreur
    Erreur SQL !INSERT INTO details (id_detail,id_cmd,artdet,qttart) VALUE
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
    Je ne comprends pas car avec l'echo je vois que la commande est bonne !

    Merci d'avance à tous (il ne me manque que ça et j'ai fini mon petit site)

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour.

    1- Je pense que la colonne id est auto-incrémentée, vire la de la requête.
    2- Toutes les valeurs qui ne sont pas de type entier doit être entre de guillemet simple ou double.

    A+.

  3. #3
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    voici un code d'insertion multiple plus propre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $data = array();
    foreach ($tableau as $id => $name) 
    {
        $data[] = '('.(int)$idmainfiche.', '.(int)$id.', "'.mysql_real_escape_string($name).'")';
    }
     
    $sql = 'INSERT INTO fiche (id_ficheprincipale, id_fiche, nom) VALUES '.implode(', ', $data);

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 27
    Par défaut
    Hum merci mais j'ai toujours le même message d'erreur je vous mets le code peut être que ça peut aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $idF = $_POST['idF '];
    $nomF =$_POST['nomF '];
    $tableau = array_combine($idF , $nomF );
    $data = array();
    foreach ($tableau as $id => $name) {
        $data[] = '('.(int)$idmainfiche.', '.(int)$id.', "'.mysql_real_escape_string($name).'")';
    }
    $sql = 'INSERT INTO fiche (id_ficheprincipale, id_fiche, nom) VALUES '.implode(', ', $data);
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    Je suis chez KALANDA se pourrait il qu'il empèche l'insertion multiple?

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Houlà !!

    Poste plutôt la structure de ta table fiche.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 27
    Par défaut
    table fiche :

    id (int 11)
    id_ficheprincipale (int 11)
    id_fiche (int 11)
    nom (varchar 100)



    P.S :

    j'ai mis le code en fin de page automatique c'est à dire sans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(isset($_POST['submit']))
    et ça marche... mais il ne marche plus quand je mets le isset .. je vais craquer psychologiquement ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/01/2010, 23h06
  2. Insertion multiples via script php
    Par furtif1 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 09/04/2007, 17h03
  3. Insertion multiple à base de sous requête SELECT
    Par drinkmilk dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/04/2005, 16h34
  4. INSERT multiples avec : rs.AddNew et .Update
    Par M.Zip dans le forum ASP
    Réponses: 4
    Dernier message: 03/12/2004, 15h53
  5. pb d'insertions multiples
    Par devalender dans le forum SQL
    Réponses: 2
    Dernier message: 14/07/2004, 14h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo