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 :

[SQL] Espace dans une variable pour SQL


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Par défaut [SQL] Espace dans une variable pour SQL
    Petit problème. Quand l'utilisateur clique sur le lien, la page est rechargé avec une variable dans l'URL. Cette variable contient un espace (transformé en %20 dans l'URL). Cette même variable sert pour une requête SQL. J'ai tout vérifié avec une variable sans espace, tout fonctionne. Mais dès que la variable a un espace, la requête ne fonctionne pas. Pas de message d'erreur, mais une réponse vide.

    Plus de précision si besoin :
    Code : 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
    if (isset($_GET[nom_console]))
    {
      // -->connexion à la base
      $sql = mysql_query("SELECT * FROM jeu WHERE nom_console='{$_GET[nom_console]}'")
      while ($donnees = mysql_fetch_array($sql) )
      {
        echo "jeu : ";
        echo $donnees[nom_jeu];
      }
      echo "console : ";
      echo $_GET[nom_console];
    }
    else
    {
    ?>
      <a href="essai.php?nom_console=Nintendo DS">essai</a>
    <?php
    }
    ?>
    affichage souhaité :
    jeu : nom du jeu 1
    jeu : nom du jeu 2
    console : Nintendo DS

    affichage réel :
    console : Nintendo DS

    J'ai essayé en modifiant les guillemets et les quotes, mais rien ne change.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Par défaut
    que veux tu faire? enlever l'espace de ta variable? si c'est ce que tu veux faire, utilise la fonction trim.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Par défaut
    non je souhaite justement garder cet espace, car les données recherchées de ma base ont ce même espace. Donc si je le retire, il est certain que ma requête ne fonctionnera pas.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Par défaut
    Citation Envoyé par xtranaz Voir le message
    non je souhaite justement garder cet espace, car les données recherchées de ma base ont ce même espace. Donc si je le retire, il est certain que ma requête ne fonctionnera pas.
    alors je ne comprend plus .
    en fait je suis partit de ça

    Citation Envoyé par xtranaz Voir le message
    .....Cette variable contient un espace (transformé en %20 dans l'URL). Cette même variable sert pour une requête SQL. J'ai tout vérifié avec une variable sans espace, tout fonctionne. Mais dès que la variable a un espace, la requête ne fonctionne pas. Pas de message d'erreur, mais une réponse vide.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Par défaut
    Désolé je me suis mal exprimé. J'ai testé avec des variables sans espaces pour vérifier que mon code était bon. Il serait préférable pour moi de garder ces espaces si cela est possible. Mon code fonctionne correctement sans espace et j'aimerai qu'il fonctionne également avec.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Par défaut
    quand tu retiresla variable remplace l'espace par un underscore
    ca doit etre str replace je crois

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    http://fr3.php.net/urldecode

    sinon tu fais ça

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Par défaut
    ca fait erreur 404 ton lien

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    il marche très bien chez moi en clair:
    string urldecode ( string $str )

    Décode toutes les séquences %## et les remplace par leur valeur.

  10. #10
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Quand je vois $_GET[nom_console] au lieu de $_GET['nom_console'] j'ai l'impression que ton problème peut venir des magic quotes.
    Je maîtrise mal cette problématique, mais tu devrais chercher dans cette direction.
    Tu peux aussi essayer (c'est recommandé systématiquement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = mysql_query("SELECT * FROM jeu WHERE nom_console='{mysql_real_escape_string($_GET[nom_console])}'")

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Par défaut
    Merci de votre aide à tous!!!
    J'ai décider de ne pas me prendre la tête et de mettre des underscore à la place des espaces, puis, lors de l'affichage, remplacer les underscore par les espaces.
    Encore merci et bonne continuation à vous!!!

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

Discussions similaires

  1. Appel d'une procédure PL/SQL contenue dans une variable
    Par daniel.lemuet dans le forum PL/SQL
    Réponses: 2
    Dernier message: 21/01/2010, 17h48
  2. Placer des données de SQL serveur dans une variable
    Par Dohmaker dans le forum VB.NET
    Réponses: 11
    Dernier message: 19/02/2008, 22h18
  3. insérer des côtes dans une variable pl/sql
    Par illegalsene dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/01/2007, 14h20
  4. Transqct-SQL : Redirection dans une variable
    Par Chmog dans le forum Langage SQL
    Réponses: 1
    Dernier message: 29/11/2006, 11h29
  5. Réponses: 3
    Dernier message: 22/07/2005, 12h12

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