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 :

Utilisation de la fonction "implode" [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 212
    Points : 616
    Points
    616
    Par défaut Utilisation de la fonction "implode"
    Bonsoir j'essaye de testé ce script mais il ne fonctoinne pas voici l'erreur qu'i met:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    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 'IN(1213111113)' at line 2
    je n'arrive pas a afficher la correspondance de mon panier
    voci le script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    session_start();
    include("../inc.php");
    mysql_connect("localhost","root","");
    mysql_select_db("base");
    $sql="SELECT * FROM prestation"."WHERE idprest 
    IN(".implode($_SESSION['monpanier']).")";
    $resultat=mysql_query($sql) or die (mysql_error());
    while($service=mysql_fetch_array($resultat))
    {
    print $service['acte'];
    }
    ?>

    merci de vos aident

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Une petite lecture de la documentation ne fait pas de mal :

    implode() prend deux paramètres : la colle et les morceaux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql="SELECT * FROM prestation"."WHERE idprest 
    IN(".implode(",",$_SESSION['monpanier']).")";

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 212
    Points : 616
    Points
    616
    Par défaut
    merci j'ai rectifier le tire mais l'erreur persiste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    session_start();
     
     
     
    $sql="SELECT * FROM prestation"."WHERE idprest 
    IN(".implode(",", $_SESSION['monpanier']).")";
    $resultat=mysql_query($sql) or die (mysql_error());
    while($service=mysql_fetch_array($resultat))
    {
    print $service['acte'];
    }
    ?>
    ok je comprend mieux quand parle de la colle et les morceaux!

    l'erreur
    <code>
    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 'IN(1,2,1,3,1,1,1,1,1,3)' at line 2
    </code>

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Fais un echo de $sql, cela te donnera des infos.
    De plus, si tu utilises phpMyAdmin, tu pourras utiliser ta requète et voir ce qui ne va pas.

    A+

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 212
    Points : 616
    Points
    616
    Par défaut
    j'ai fait un echo $sql après where id prest..
    voici ce qu'il m'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    1,1,3,3 SELECT * FROM prestationWHERE idprest IN (1,1,3,3)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 'IN (1,1,3,3)' at line 1
    je sais pas pouquoi il y a 65.. dans le code

    1,1,3,3 SELECT * FROM prestationWHERE idprest IN (1,1,3,3)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 'IN (1,1,3,3)' at line 1


    j'utilise vwamp avec php admin Version du serveur: 5.0.51

  6. #6
    jnore
    Invité(e)
    Par défaut
    Déjà il faudrait qu'il y ait un espace entre prestation et la clause where.
    C'est ca ton probleme de syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM prestation WHERE idprest ...

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 212
    Points : 616
    Points
    616
    Par défaut
    ok merci je pense que ca doit être ca car j'ai mis de
    `` entre prestation et idprest

    cela fonctionne merci encore

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

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