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

Langage SQL Discussion :

[MySQL] filtrage sur début de libellé = 1 lettre /un chiffre


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Points : 140
    Points
    140
    Par défaut [MySQL] filtrage sur début de libellé = 1 lettre /un chiffre
    Salut à tous, voila j'ai une page php qui me marque toutes les lettres de l'alphabet afin que quand je clique sur une, je puisse mettre cette lettre comme paramètre de ma requete.

    J'ai aussi un 0-9 car j'aimerai que quand on clique dessus sa me retourne une liste de produit commençant par un nombre. mon code est le suivant :

    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
    20
    21
    22
    23
    24
    25
    26
     
    $sql_partition= "SELECT DISTINCT * FROM partition,instrument,genre,auteur,editeur,appartient,apour";
    $sql_partition.= " WHERE partition.id_partition=apour.id_partition";
    $sql_partition.= " AND instrument.id_instrument=apour.id_instrument";
    $sql_partition.= " AND partition.id_editeur=editeur.id_editeur";
    $sql_partition.= " AND partition.id_auteur=auteur.id_auteur";
    $sql_partition.= " AND partition.id_partition=appartient.id_partition";
    $sql_partition.= " AND appartient.id_genre=genre.id_genre";
    $sql_partition.= " AND partition.etat_partition=1";
     
    	if(isset($_GET["lettre"]))
    	{
    		$lettre = $_GET['lettre'];
     
    			if($_GET['lettre']=="0-9")
    			{
    				echo
    			}
     
    		$sql_partition.= " AND auteur.nom_auteur LIKE '".$lettre."%' GROUP BY partition.id_partition ASC ";
    	}
    	else
    	{
    		$sql_partition.= " AND auteur.nom_auteur LIKE 'a' GROUP BY partition.id_partition ";
     
    	}
    le problème c'est que je n'arrive pas a savoir ce que je peux mettre comme ligne de requete pour que sa me retourne que les parttiions dont l'auteur commence par un chiffre.

    J'ai la solution de tester a chaque fois et de faire la ligne adequate, mais sa me fais faire 10 lignes, alors que je pense qu'il y a plus rapide.

    merci pour votre réponse

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Merci de respecter les règles de ce forum
    Citation Envoyé par Règle du Forum
    Ce forum est dédié au langage SQL, merci donc de bien vouloir vous limiter à celui-ci lors de la citation de votre code. Notamment le code PHP, étant difficilement lisible pour les profanes veuillez l'éviter

  3. #3
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Points : 140
    Points
    140
    Par défaut
    Bon excuser moi alors j'aimerai savoir comment faire une requete en fonction d'une variable retourné par une url.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT DISTINCT * FROM partition,instrument,genre,auteur,editeur,appartient,apour
    WHERE partition.id_partition=apour.id_partition
    AND instrument.id_instrument=apour.id_instrument 
     AND partition.id_editeur=editeur.id_editeur
    AND partition.id_auteur=auteur.id_auteur
    AND partition.id_partition=appartient.id_partition
    AND appartient.id_genre=genre.id_genre
     AND partition.etat_partition=1
    sachant que je veux faire affiher tous mes résultat dont auteur.nom_auteur commence par un chiffre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    auteur.nom_auteur LIKE '...%' GROUP BY partition.id_partition
    c'est dans mon like que je ne suis pas trop sur

    merci beaucoup pour votre réponse
    et excuser moi pour vous avoir mis un bout de code php

  4. #4
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Est-ce que ce sujet te donne une réponse ?
    [Access] Requete exclue champ qui commence par alpha

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 849
    Points : 52 975
    Points
    52 975
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND SUBSTRING(auteur.nom_auteur, 1, 1) IN ('1','2','3','4','5','6','7','8','9')
    A +

  6. #6
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par SQLpro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND SUBSTRING(auteur.nom_auteur, 1, 1) IN ('1','2','3','4','5','6','7','8','9')
    Il manque le 0, na-na-nère (désolé, une pulsion irrépressible )

  7. #7
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Points : 140
    Points
    140
    Par défaut
    salut, merci pour vos réponse, alors du coup j'au une requete qui à cette tete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT DISTINCT * FROM partition,instrument,genre,auteur,editeur,appartient,apour
     WHERE partition.id_partition=apour.id_partition
     AND instrument.id_instrument=apour.id_instrument
     AND partition.id_editeur=editeur.id_editeur
    AND partition.id_auteur=auteur.id_auteur
     AND partition.id_partition=appartient.id_partition
     AND appartient.id_genre=genre.id_genre
    AND partition.etat_partition=1
    AND SUBSTRING(auteur.nom_auteur, 1, 1) IN ('1','2','3','4','5','6','7','8','9');
    GROUP BY partition.id_partition;
    je la test en brut dans phpMyadmin, mais la cette requete ne me retounre rien avec le
    SELECT DISTINCT * FROM partition,instrument,genre,auteur,editeur,appartient,apour
    WHERE partition.id_partition=apour.id_partition
    AND instrument.id_instrument=apour.id_instrument
    AND partition.id_editeur=editeur.id_editeur
    AND partition.id_auteur=auteur.id_auteur
    AND partition.id_partition=appartient.id_partition
    AND appartient.id_genre=genre.id_genre
    AND partition.etat_partition=1
    AND SUBSTRING(auteur.nom_auteur, 1, 1) IN ('1','2','3','4','5','6','7','8','9');

    Pourtant j'ai bien la partition numéro 10 qui a un id_auteur correspondant dans la table auteur à 50cent. Donc il commence bien par un chiffre. Mais aucun resultat ne m's retourné.

    je ne comprend pad trop

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 849
    Points : 52 975
    Points
    52 975
    Billets dans le blog
    6
    Par défaut
    Estes vous sur que toutes vos données existent en liaisons dans toutes vos tables ???
    Sinon il faut faire des jointures externes :

    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
    20
    21
    22
    23
    24
     
    SELECT DISTINCT * 
     
    FROM   partition P
     
           INNER JOIN auteur A
                 ON P.id_auteur = A.id_auteur
     
           LEFT OUTER JOIN editeur E
                 ON P.id_editeur = E.id_editeur
     
           LEFT OUTER appartient T
                 ON P.id_partition = T.id_partition
     
              LEFT OUTER  JOIN genre G
                    ON T.id_genre = G.id_genre
     
           LEFT OUTER JOIN apour O
                 ON P.id_partition = O.id_partition
     
              LEFT OUTER JOIN instrument I
                    ON O.id_instrument = I.id_instrument
     
    WHERE SUBSTRING(A.nom_auteur, 1, 1) IN ('0', '1','2','3','4','5','6','7','8','9');
    Lisez l'article que j'ai écrit sur les jointures externes :
    http://sqlpro.developpez.com/cours/s...ointures/#L2.3

    A +

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

Discussions similaires

  1. [MYSQL] Commentaires sur les tables et les champs
    Par luc2verga dans le forum Requêtes
    Réponses: 10
    Dernier message: 29/05/2007, 23h49
  2. [MySQL] aide sur une requete
    Par dj-julio dans le forum Langage SQL
    Réponses: 5
    Dernier message: 12/01/2006, 14h25
  3. j ai besoin de mysql 3 sur windows
    Par dietrich dans le forum Administration
    Réponses: 3
    Dernier message: 09/01/2006, 17h37
  4. [MySQL] Jointure sur une table déjà jointe
    Par genova dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/10/2005, 23h54
  5. [MYSQL] Question sur jointure
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 4
    Dernier message: 17/10/2005, 11h46

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