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 :

Requête MySQL : problèmes avec les espaces [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 48
    Points : 38
    Points
    38
    Par défaut Requête MySQL : problèmes avec les espaces
    Bonjour,

    Dans ma requête MySQL, j'ai des soucis lorsqu'il y a un espace dans une variable.

    Si dans la requête je met tel quel (cp = $cp), tout marche nickel tant que le contenu de la variable est une seule chaîne. Si il y a un espace, erreur SQL.

    J'ai tenté de mettre des simple et double quotes, mais là ça ne marche que quand on met l'expression complète. Sinon, rien ne se passe (comme si c'était incorrect)

    EXEMPLE

    Imaginons dans la base sql, cp à rechercher est 7062 LN (code postal néerlandais).

    Expression sans quotes :
    ------------------------
    $sql = "SELECT AUN, denomination, ville FROM aun WHERE cp = $cp ORDER BY ville";

    si $cp = 7062, il trouve sans pb
    si $cp = 7062 LN, erreur SQL (à mon avis pcq il prend LN comme un élément séparé).


    Expression avec simples et doubles quotes :
    ------------------------
    $sql = "SELECT AUN, denomination, ville FROM aun WHERE cp = ".$cp." ORDER BY ville";

    si $cp = 7062, il ne trouve rien (0 résultats)
    si $cp = 7062 LN, il trouve sans problèmes.


    Je chercheà faire en sorte que la variable soit reconnue "n'importe où dans le champ" et pas seulement "champ entier" ; un genre de "mix" entre les deux cas ci-dessus.

    Ne faudrait-il pas changer qqch au niveau du signe = ?

    Merci pour vos avis.

  2. #2
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    bonjour,

    Essais ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT AUN, denomination, ville FROM aun WHERE cp LIKE '%$cp%' ORDER BY ville";
    ++
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    c'est au niveau de la requête qu'il faut mettre des apostrophes et pas dans le code PHP
    donc ça te donne queluque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $cpSQL = mysql_real_escape_string($cp); // sécurité
    $sql = "SELECT AUN, denomination, ville FROM aun WHERE cp = '$cpSQL' ORDER BY ville";
    Citation Envoyé par superseba888
    Je chercheà faire en sorte que la variable soit reconnue "n'importe où dans le champ" et pas seulement "champ entier" ; un genre de "mix" entre les deux cas ci-dessus.
    essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE cp LIKE '%$cpSQL%'
    le "%" veut dire "n'importe quel caractère"

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 48
    Points : 38
    Points
    38
    Par défaut
    Cool ça marche, vous êtes des stars !

    Bon week-end à tous ...


    Citation Envoyé par sharrascript
    bonjour,

    Essais ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT AUN, denomination, ville FROM aun WHERE cp LIKE '%$cp%' ORDER BY ville";
    ++

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

Discussions similaires

  1. [D6][ADO][MYSQL] problème avec les valeurs négatives
    Par shugxg dans le forum Composants VCL
    Réponses: 8
    Dernier message: 06/02/2009, 09h52
  2. problème avec les espaces
    Par worpal86 dans le forum Mise en forme
    Réponses: 6
    Dernier message: 18/07/2008, 12h53
  3. [RegEx] Problème avec les espaces entre deux tags
    Par elcoyotos dans le forum Langage
    Réponses: 9
    Dernier message: 17/04/2007, 11h01
  4. Problème avec les espaces dans un tableau !
    Par remixtech dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 10/07/2006, 19h30
  5. [Winsock] Problème avec les espaces
    Par Fiquet dans le forum Développement
    Réponses: 3
    Dernier message: 12/01/2006, 18h06

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