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 avec des lettres impossibles [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Points : 120
    Points
    120
    Par défaut Requête avec des lettres impossibles
    Bonjour,

    Mon code ci dessous appelle 'ville'
    Je bloque sur un truc,
    Exemple
    J'appelle la ville 'Paris' ça marche pas et me donne l'erreur "selection impossible"
    Si je change le nom 'Paris' et je l'appelle '123456' ça marche et j'obtiens les infos de tout les champs !!!

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $result = $mysql->query("SELECT id,ville,www,codepostal,nom_dept,numero_dept FROM mairie WHERE ville='".$id."'");
     
       if($result) {
        list($id,$ville,$www,$cp,$nom_dept,$numero_dept)=mysql_fetch_row($result)or die ("Selection impossible");
     
    	echo "<br><font color=white face=Verdana size=4>La ville porte le numero d'ID ??: $id et c'est la ville de ??: $ville avec le code postal ?? $cp";
    Ou est mon erreur ?

    Merci

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    WHERE ville='".$id."'"
    On dirait que tu fais ta restriction sur l'id plutôt que sur le nom de la ville donc c'est normal que "Paris" ne fonctionne pas et qu'un nombre fonctionne.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Points : 120
    Points
    120
    Par défaut
    Bonjour CinePhil,

    Je suis certain que tu as raison

    Mais que propose tu comme code a la place ? pour transformer 'id' en 'ville'

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    C'est pas un problème de SQL mais de PHP !
    D'ailleurs c'est dans la rubrique PHP/MySQL que doit se trouver cette discussion.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Points : 120
    Points
    120
    Par défaut
    Mon niveau MySql est très mediocre mais
    OUI j'ai déjà essayé

    Je cherche un code orienté vers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ($id) $id=$ville;{
     
     $ville = addslashes($ville);
     
    $result = $mysql->query("SELECT id,ville,www,codepostal,nom_dept,numero_dept FROM mairie WHERE ville='".$id."'");

  6. #6
    Invité
    Invité(e)
    Par défaut
    Salut,

    Peux-tu ajouter la fonction suivante pour avoir un peu plus d'infos sur ton erreur.

    $result = $mysql->query("SELECT id,ville,www,codepostal,nom_dept,numero_dept FROM mairie WHERE ville='".$id."'") or die ("erreur select: ".mysql_error());

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Points : 120
    Points
    120
    Par défaut
    Bonjour Mygale1978,

    Salut,

    Peux-tu ajouter la fonction suivante pour avoir un peu plus d'infos sur ton erreur.

    Citation:
    $result = $mysql->query("SELECT id,ville,www,codepostal,nom_dept,numero_dept FROM mairie WHERE ville='".$id."'") or die ("erreur select: ".mysql_error());
    En fait mon erreur est déjà identifié par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($id,$ville,$www,$cp,$nom_dept,$numero_dept)=mysql_fetch_row($result)or die ("Selection impossible");
    Qui me donne comme resultat "Selection impossible" quand j'appelle une ville "paris" et qui fonctionne quand j'appelle la ville '123456'

    Le problème est que j'appelle la ville par .$id. et donc ne fonctionne pas avec des lettres mais uniquement avec des chiffres.

    Je cherche donc un nouveau code qui peut fonctionner pour appeler des lettres

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Ben alors si tu veux appeler la ville par son id :
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Points : 120
    Points
    120
    Par défaut
    C'est une bonne idée mais quand je fais ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $result = $mysql->query("SELECT id,ville,www,codepostal,nom_dept,numero_dept FROM mairie WHERE id='".$id."'")or die ("erreur select: ".mysql_error());
    if($result) { list($id,$ville,$www,$cp,$nom_dept,$numero_dept)=mysql_fetch_row($result)or die ("Selection impossible");
    J'obtiens le message d'erreur "Selection impossible" ! y compris pour la ville qui s'appelle "123456" quand j'utilise WHERE id='".$id. a la place WHERE ville='".$id.

    Et je comprends pas pourquoi ... Voila pourquoi je cherche un autre code...

  10. #10
    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
    Si tu veux filtrer ta requete par la colonne "ville" ce n'est evidemment pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE id = '$recherche'
    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE ville = '$recherche'
    $recherche etant la variable qui contient le nom de ville que tu veux filtrer.

    Si cette requête ne retourne pas d'enregistrements, commence par controler ce que vaut la variable au moment de la requête et execute la requête dans phpmyadmin.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Points : 120
    Points
    120
    Par défaut
    La solution est dans l'url rewriting qui ne donnait aucun résultat avec des lettres

    Merci a tous ceux qui m'ont aidé et voici la solution pour ceux qui auront un jour le même problème

    Au départ j'avais cette ligne dans mon htaccess:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(.*)/(.*)-([0-9]+)\.htm$ index.php?action=$1&url=$2&id=$3 [L]

    Finalement en supprimant cette ligne


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(.*)/(.*)-([0-9]+)\.htm$ index.php?action=$1&url=$2&id=$3 [L]

    et en remplaçant par :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(.*)/(.*)-([a-zA-Z_-]+)\.htm$ index.php?action=$1&url=$2&id=$3 [L]

    Tout fonctionne parfaitement

    bonne journée

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

Discussions similaires

  1. compter avec des lettres
    Par Décibel dans le forum Access
    Réponses: 2
    Dernier message: 19/04/2006, 08h33
  2. [SQL] Requête dans une requête...avec des INNER JOIN!
    Par PedroBD dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 06/04/2006, 08h26
  3. SQL Requête avec des dates
    Par dahu29 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/03/2006, 18h20
  4. Requête avec des tables de plusieurs bases
    Par Oluha dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2005, 16h56
  5. [ADO/Access] Appel d’une requête avec des paramètres
    Par Taxenna dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/12/2004, 14h58

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