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 :

requete sur la premiere lettre [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut requete sur la premiere lettre
    Bonjour,

    J'ai un GET sur une lettre envoyée par le biais d'un lien.

    Je voudrais chercher dans une table les resultats dotn le nom des personnes commencent par cette lettre, mais je ne m'en sort pas:


    Voila ce qu'était mon idée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	$alpha = $_GET['alpha'];
     
    	$sql= " SELECT  id, nom, prenom							
    			FROM user
    			WHERE substr(nom,0,1) = $alpha 
    		  ";

    Je pense que ca peux la stupidité de ce code (du php dans du une requete mysql) montre bien quel est le but à attendre.

    Merci bcp

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Salut,

    pour ta condition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WHERE nom LIKE '$alpha%'
    Sinon pour extraire une sous-chaine en SQL:
    http://sql.developpez.com/sqlaz/select/#L4.4

    a+

  3. #3
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut
    on pouvait pas esperer mieux, deux solutions à 1 probleme.

    Merci à toi et bon WE.

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    N'oublie pas de bien extraire la première lettre de ta chaîne, sans l'utiliser telle quelle, sans quoi tu t'exposes à une injection SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       $alpha = $_GET['alpha']{0};
     
       $sql= " SELECT  id, nom, prenom                     
             FROM user
             WHERE nom LIKE '$alpha%'
            ";

  5. #5
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut
    c'est quoi une injection monsieur?

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

    Informations forums :
    Inscription : Février 2006
    Messages : 41
    Par défaut
    c'est profiter du fait que tu utilises un truc modifiable comme le visiteur le souhaite directement pour agir sur ta base de donnée.

  7. #7
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut
    rien compris....

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

    Informations forums :
    Inscription : Février 2006
    Messages : 41
    Par défaut
    si tu utilises ta variable passée en paramètre directement, l'utilisateur mal intentionné peut y mettre une requête SQL qui sera executée par ta page.

    exemple il remplace

    ?lettre=a

    par

    ?lettre=a") mysql_query("TOUT CASSER") et ça va insérer ce bout dans ton code. (en gros)

  9. #9
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut
    Ok jai bien compris.

    Merci beaucoup.

    C'est bon à savoir ca.

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

Discussions similaires

  1. [MySQL] Requete (afficher resultat en fonction de la premiere lettre)
    Par maxime06 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 23/06/2010, 11h26
  2. recherche sur les premières lettres
    Par mogur dans le forum Requêtes
    Réponses: 2
    Dernier message: 23/10/2006, 09h06
  3. Réponses: 3
    Dernier message: 17/05/2004, 17h28
  4. requete sur un dossier
    Par vedder dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/03/2004, 14h05
  5. [MS-SQL]requete sur 3 tables
    Par pascalT dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 30/04/2003, 11h24

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