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

Langage PHP Discussion :

Problème de requêtes (php)


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 106
    Par défaut Problème de requêtes (php)
    Bonjour, j'ai un petit problème de codage. J'ai une liste de mot, que j'entre dans un tableaux est j'ai envie d'enregistrer mes mots dans ma table comme sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    mot_clefs |  id_ref
    -------------------
    chien     |     1
    bateau    |     1
    chat      |     1
    -------------------     
    au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mot_clefs          |  id_ref
    ----------------------------
    chien bateau chat  |    1
    ----------------------------     
    Donc, j'ai utilisé la fonction explode pour couper la chaine, est dans la requête, je fais un implode mais, il y a un parse error que je ne parvient pas à régler.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?php
    //$liste contient ==> chient chat bateau
     
    extract($_POST);
    $liste = mysql_real_escape_string(addslashes($liste));
     
    $array = explode(',', $liste);
     
    // echo '<pre>';
    // print_r($array);
    // echo '</pre>';
     
    //Array
    //(
        //[0] => chien
        //[1] =>  chat
        //[2] => bateau
    //)
     
    $id = mysql_insert_id();
    $sql = "INSERT INTO test (mot_clefs, id_ref) VALUES (".implode(', 1'), (', "'.$array.'"').", 1)";
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    echo'ok !';
    ?>

    J'ai eu beau ré-essayer différemment, toujours pareils. Si vous pouviez m'aider, sa serait génial.

    Merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu devrais revoir la fonction implode : le premier paramètre doit etre une chaine de caractères, le deuxieme un tableau
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 106
    Par défaut
    Je suis aller sur la doc de PHP, est j'ai repris un peu mon code ce qui donne :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    $id = mysql_insert_id();
    $truc = implode(" ", $array);
     
    $sql = "INSERT INTO test (mot_clefs,id_ref) VALUES ('$truc', '$id')";
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    ?>

    Cette fois aucune erreur, mais tout les mots ne sont pas separer, ils sont tous dans le même champs.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ce qui est normal puisque c'est toi qui avec la fonction implode() rassemble toutes tes valeurs dans une seule chaine.

    Il faut parcourir ton tableau de valeur $array avec foreach et pour chaque valeur, faire une requete INSERT
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 106
    Par défaut
    Apache me retourne une erreur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning:  implode() [<a href="function.implode">function.implode</a>]: Invalid arguments passed in C:\Documents and Settings\Administrateur\Bureau\Programmation PHP\test\test.php on line 63
    Voici mon code :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php
    extract($_POST);
    $liste = mysql_real_escape_string(addslashes($liste));
     
    $array = explode(',', $liste);
     
    foreach ($array as $motsclefs) 
    {
    $id = mysql_insert_id();
    $truc = implode(" ", $motsclefs);
     
    // $sql = "INSERT INTO test (mot_clefs,id_ref) VALUES ('$truc', '$id')";
    // $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    echo $truc; //Je teste avant...
    }
    ?>

    C'est quoi l'erreur ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    pourquoi utilises-tu encore implode ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [AJAX] Affichage de requête PHP dans un div créé par Ajax
    Par will89 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/12/2007, 20h00
  2. [PHP&PosgreSQL]:problème de requête SELECT
    Par guestCam dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 17/08/2007, 17h54
  3. [SQL] Problème construction requête SQL - PHP
    Par laulau37 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/06/2007, 17h50
  4. Problème de requête en PHP avec postgreSQL
    Par Kira07 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 29/05/2007, 23h52
  5. Réponses: 3
    Dernier message: 03/03/2007, 15h28

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