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 :

Une requete sql WHERE pour filtrer le premier entier ou avant tiret.


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Et Webdesigner
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Et Webdesigner

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Une requete sql WHERE pour filtrer le premier entier ou avant tiret.
    Salut à tout le monde,

    Alors, j'ai trouvé la solution à mon problème, mais je trouve que c'est du bricolé. Pas très clean quoi.
    J'aimerai donc avoir vos avis, je ne connais pas toutes les commandes sql car je n'en ai pas forcement besoin en temps normal.

    En gros j'ai une table qui a pour champ :

    type_appareil

    Ce dernier contient 2 entiers qui correspondent à un certaines caractéristiques...

    Exemple :
    2-4 ou 12-8

    critaire1-critaire2
    etc...


    le critaire2 est comme la sous-famille du critaire1


    Je voudrais que ça marche en gros comme des sous-catégories, alors je sais que vous allez me dire qu'il aurait fallu faire une autre table avec une jointure.
    Je sais faire, mais je ne veux pas le faire ici, je veux garder ces entier dans un seul champ, séparés par un tiret -.


    Alors, si mes deux critaires sont demandés c'est très simple il me suffit de faire un = et là c'est sans souci
    Le problème intervient si je veux afficher ces objets seulement avec le critaire1 (avec le critaire2 ce n'est pas possible puis qu'il appartient au 1).

    Donc, ce que j'ai dû faire c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM matable WHERE critaire1 LIKE '".$varcritaire."-%'";
    J'ai dû rajouter le "-%" de cette façon car admettons que :

    $varcritaire = 1;

    sans ça, ça pouvait me prendre un critaire1 12 ou 31...

    OUla je me perds moi même dans mon explication.

    POUR FAIRE SIMPLE, VOICI MA QUESTION :

    Je voudrais une requete sql qui va chercher l'entier qui se trouve avant le "-" à gauche, le problème c'est que cet entier est parfait un nombre ou 2 chiffres.

    Y a t'il un moyen ? Ca existe ? Peut-être y a t'il d'autres options dans Like qui pourraient être + utiles ?

    Merci par avance !

  2. #2
    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
    C'est déjà ce que fais ta requête non ? Elle compare toute la partie gauche de ta chaine.
    Pour le fond du sujet, tu ne peux pas faire proprement quelque chose de sale.
    Tu pourrais utiliser SUBSTRING() et LOCATE() pour isoler la chaine avant le tiret mais quel serait l'avantage ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Et Webdesigner
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Et Webdesigner

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour la réponse, je me doutais bien, mais je voulais savoir s'il y avait tout de même une possibilité. Je vais faire ça avec deux champs INT séparés et j'utiliserai mes class pour construire la requete.

Discussions similaires

  1. [AC-2003] Faire un compte dans une requete sql qui contient le critère "premier"
    Par facteur dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/12/2014, 16h45
  2. Besoin d'aide pour une requete SQL
    Par fabris dans le forum Requêtes
    Réponses: 6
    Dernier message: 10/04/2006, 20h27
  3. [MySQL] Condition pour une Requete sql vide
    Par needles94000 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/03/2006, 18h03
  4. Aide pour une requete SQL
    Par hpghost dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/01/2005, 15h01
  5. Aide pour une requete SQL
    Par hpghost dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 08/01/2005, 10h15

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