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

Requêtes MySQL Discussion :

Tableau multidimensionnel dans une requète


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2004
    Messages : 40
    Points : 39
    Points
    39
    Par défaut Tableau multidimensionnel dans une requète
    Bonjour à tous,

    J'ai une petite requète pour créer un nouvel enregistrement en fonction d'un tableau à 2 dimensions: $tableau[index_en_cours][données_de_un_à_quatre]

    Donc mon soucis: je n'arrive pas à passer mon tableau dans la requète en fonction d'un index qui change constament:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    $req=mysql_query("INSERT INTO documents
     
       (doc_id,doc_chemin,doc_commentaire,fich_id_)
     
       ($num_id,$tableau[$index][0],$tableau[$index][2],'')");
    Ma table: documents avec les champs: doc_id, doc_chemin, doc_commentaire,fich_id_

    Soit MySQL ne me créé pas de nouvel enregistrement soit j'ai Array[0] et Array[2] pour les champs doc_chemin et doc_commentaire....

    Merci d'avance de vos réponses,

    Michael

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    D'abord, il faut mettre un "VALUES" après les colonnes dans lesquelles tu insères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req=mysql_query("INSERT INTO documents
       (doc_id,doc_chemin,doc_commentaire,fich_id_)
    VALUES...
    Ensuite, il faut concaténer ta chaîne de requête avec les variables de ton tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ($num_id,".$tableau[$index][0].", ".$tableau[$index][2].",'')");
    Enfin, vérifie ce qu'il y a réellement dans $tableau[$index][0], parce que là, on ne voit pas comment il a été rempli, le tableau, et le problème peut aussi venir de là

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2004
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Bonjour Ced,

    Merci pour ta réponse. J'avais effectivement oublié VALUES dans la requète...

    J'ai refait des modifs. Les index ne sont pas à zéro et toutes les valeurs sont bien présente...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $req=mysql_query("INSERT INTO documents
           (doc_id,doc_chemin,doc_commentaire,fich_id_) 
    VALUES (".$num_id.",".$tableau[$index][0].",".$tableau[$index][2].",'')");
    Ci-dessous les valeurs et le message d'erreur:

    $index est = à 10427 (fonction rand()+nombre enregistrement en cours pour une autre utilisation. )

    [10427] => Array $num_id est à 10423
    (
    [0] => img001.jpg //$tableau[$index][0]
    [1] => C:\Joomla\xampplite\tmp\php9B.tmp
    [2] => Une image JPeg //$tableau[$index][2]
    [3] => JPG
    [4] => 4069.3 Ko
    )

    )

    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 'image JPeg,'')' at line 2

    Par contre mon champ primaire doc_id (pour valeur $num_id) est en auto-increment et dans mon cas je vais lui donner une valeur aléatoire en plus de ceux qui existe.... Est-ce cela l'erreur ?


    Merci,

    Michael

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Non, en fait, je pense que c'est juste un problème de type, parce que tes colonnes doc_chemin et doc_commentaire sont des chaînes de caractères (et doivent donc être insérées entre quotes).
    Essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req=mysql_query("INSERT INTO documents
           (doc_id,doc_chemin,doc_commentaire,fich_id_) 
    VALUES (".$num_id.", '".$tableau[$index][0]."', '".$tableau[$index][2]."','')");
    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2004
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Eh bien chapeau bas Mr Ced !

    C'est bien çà: les double-triple-quote-guillemets-parenthès....

    Je suis vraiment un Je viens du monde VB6 et non PHP/Mysql

    Merci et bon courage !

    Michael

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

Discussions similaires

  1. [MySQL] Problème de tableau multidimensionnel dans une session
    Par harkness dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 01/02/2011, 11h06
  2. Réponses: 14
    Dernier message: 09/10/2010, 00h44
  3. Utilisation d'un tableau dans une requête
    Par stigma dans le forum Access
    Réponses: 2
    Dernier message: 20/12/2007, 10h42
  4. [Tableaux] Passer un tableau dans une requête HTTP ??
    Par haffouff dans le forum Langage
    Réponses: 2
    Dernier message: 09/05/2006, 17h17
  5. Intégrer un tableau dans une requête mysql
    Par GarGamel55 dans le forum Requêtes
    Réponses: 5
    Dernier message: 21/02/2006, 19h16

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