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 :

chaine de caractere dans une requete


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Points : 69
    Points
    69
    Par défaut chaine de caractere dans une requete
    bonjour,
    Je recois à l'exécution de ce bout de code :
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\wamp\www\minibdd\auteur\Disque\essais.php on line 7
    Je pense qu'il faut protéger la variable &libelleStyle dans la requête, est-ce que quelqu'un pourrait m'indiquer comment faire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    //essais.php
    $libelleStyle="rap";
    mysql_connect("localhost","root","");
    mysql_select_db("mediatheque");
    $resultat=mysql_query("select codeStyle from style WHERE libelleStyle=&libelleStyle");
    while ($donnees=mysql_fetch_array($resultat)){
    echo $donnees['codeStyle'];
    }
    ?>
    Merci d'avance,
    Shepounet

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Je pense que tu gagnerais en clarté en mettant ton code sur 2 lignes.
    Ceci devrait fonctionner (pas testé)
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql=("SELECT codeStyle FROM style WHERE `libelleStyle`= ' . &libelleStyle';");
    $resultat=mysql_query($sql);

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Points : 69
    Points
    69
    Par défaut
    merci, effectivement je n'ai plus de message d'erreur. Mais je n'ai plus le résultat souhaité non plus :/
    Quand je tappe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $sql="SELECT codeStyle FROM style WHERE `libelleStyle`='rap'";
    $resultat=mysql_query($sql);
    while ($donnees=mysql_fetch_array($resultat)){
    echo $donnees['codeStyle'];
    }
    ?>
    Ce bout de code me donne bien l'id souhaité : 1 !

    Quand j'utilise une variable a la place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $libelleStyle="rap";
    $sql=("SELECT codeStyle FROM style WHERE `libelleStyle`= ' . &libelleStyle';");
    $resultat=mysql_query($sql);
    while ($donnees=mysql_fetch_array($resultat)){
    echo $donnees['codeStyle'];
    }
    La je n'ai plus aucun résultat... Voici ma table style :
    codeStyle : int(11)
    libelleStyle : text(50)

    Une idée ? Pourtant libelleStyle est bien de type text, je comprend pas

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    normal
    tu définis ta variable $libelleStyle
    et tu appelles &libelleStyle
    essaye
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $libelleStyle="rap";
    $sql=("SELECT codeStyle FROM style WHERE `libelleStyle`= ' . $libelleStyle';");

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Points : 69
    Points
    69
    Par défaut
    Voilà...
    j'ai mis ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    //essais.php
    mysql_connect("localhost","root","");
    mysql_select_db("mediatheque");
    $libelleStyle="rap";
    $sql=("SELECT codeStyle FROM style WHERE `libelleStyle`= ' .$libelleStyle';");
    $resultat=mysql_query($sql);
    while ($donnees=mysql_fetch_array($resultat)){
    echo $donnees['codeStyle'];
    }
    ?>
    Aucun résultat...
    En modifiant la variable par la valeur, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    //essais.php
    mysql_connect("localhost","root","");
    mysql_select_db("mediatheque");
    //$libelleStyle="rap";
    $sql=("SELECT codeStyle FROM style WHERE `libelleStyle`='rap'");
    $resultat=mysql_query($sql);
    while ($donnees=mysql_fetch_array($resultat)){
    echo $donnees['codeStyle'];
    }
    ?>
    J'obtiens en résultat, le codeStyle associé. Je comprend plus rien :/
    (Mais en effet tout a l'heure j'avais laissé "&" a la place de "$")

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Probablement un problème de syntaxe, je n'ai pas encore tout bien intégré

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Points : 69
    Points
    69
    Par défaut
    AAaaaaahhhhhh !!!
    En mettant des simples quotes tout simplement sur la variable $libelleStyle, ca marche !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    //essais.php
    mysql_connect("localhost","root","");
    mysql_select_db("basecmonsieu");
    $libelleStyle='rap';
    $sql=("SELECT codeStyle FROM style WHERE `libelleStyle`='".$libelleStyle."'");
    $resultat=mysql_query($sql);
    while ($donnees=mysql_fetch_array($resultat)){
    echo $donnees['codeStyle'];
    }
    ?>
    Voilà ! Pfouh... J'avais dû essayé mais en laissant le "&"... Ralalala !

    Merci en tout cas, ça faisait plusieurs heures que je cherchais pourquoi ça ne marchait pas !

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Je connais, j'ai séché hier pendant une heure sur un INSERT à cause des " ' et autres `

  9. #9
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="SELECT codeStyle FROM style WHERE libelleStyle='$libelleStyle'";
    fonctionne tout aussi bien.
    En php, tant qu'à faire qu'à utiliser " comme délimiteur de chaîne, autant utiliser la capacité de php à y substituer les valeurs correspondant aux variables.
    Sinon, autant utiliser ' et l'opérateur de concaténation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql='SELECT codeStyle FROM style WHERE libelleStyle="'.$libelleStyle.'"';

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

Discussions similaires

  1. supprimer une chaine de caractere dans une ligne.
    Par wadabush dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 11/02/2009, 20h59
  2. [Tableaux] passer une chaine de caracteres dans une URL ?
    Par isa150183 dans le forum Langage
    Réponses: 3
    Dernier message: 16/09/2008, 15h06
  3. problem de chaine de caractere dans une structure
    Par lenetfm dans le forum Débuter
    Réponses: 11
    Dernier message: 18/04/2008, 08h25
  4. erreur pour une insertion d'une chaine de caractere dans une cellule
    Par amel95140 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/10/2006, 09h09
  5. Réponses: 2
    Dernier message: 04/11/2005, 11h35

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