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 PHP Discussion :

Recherche dans une table mysql et comparaison [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 47
    Par défaut Recherche dans une table mysql et comparaison
    Bonjour,

    Voici mon problème :

    Je stocke les caractéristiques de mes produits dans un champ 'caracteristiques' sous la forme d'une chaine de caractères :

    /*caracteristique1*/valeur1/*caracteristique1*//*caracteristique2*/valeur2/*caracteristique2*//*caracteristique3*/valeur3/*caracteristique3*//*caracteristique4*/valeur4/*caracteristique4*/

    où valeur4 est un nombre exemple 452.

    Je voudrais effectuer une comparaison à partir de données d'un formulaire où je sélectionne les valeurs de caracteristique4 < 150

    comment est-il possible avec une requete mysql 3.23 de réaliser la recherche des valeurs de caracteristique4 inférieures à 150 puis même question pour des valeurs supérieures à 400 et meme question aussi pour des valeurs comprises entre 150 et 400 ?

    -----------------------
    une idée serait d'extraire valeur4 avec une expression régulière en mysql puis la comparer à 150 si on cherche les valeurs de caracteristique4 inférieures à 150.
    avec une requete mysql du genre :

    SELECT * FROM table_produits WHERE( 150 > ( caracteristiques REGEXP '/\*caracteristique4\*/(.*)/\*caracteristique4\*/') )


    Est-ce une bonne solution ? En avez-vous une meilleure ?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    la meilleurs solution serai de créer une table caractéristique.

    mysql 3.23 ??? tu sors d'un coma ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 47
    Par défaut
    J'ai essayé cette requete : ca fonctionne :

    SELECT 150 > SUBSTRING(caracteristiques,LOCATE('/*a4*/',caracteristiques)+CHAR_LENGTH('/*a4*/'),LOCATE('/*a4*/',caracteristiques, LOCATE('/*a4*/',caracteristiques)+1)-LOCATE('/*a4*/',caracteristiques)-CHAR_LENGTH('/*a4*/')) ;

    => cela extrait la valeur comprise entre /*a4*/ entre /*a4*/ et cette valeur est comparée à 150.

    il reste à implémenter...

    une table caractéristique n'est pas une bonne solution à mon avis car on peut avoir différentes caractéristiques en fonction des produits.

    A débattre...

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    euh oui c'est le principe d'une base de donnée...
    et c'est tout simplement LA meilleur solution

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 47
    Par défaut
    Dans ce cas pouvez-vous me dire comment je dois implémenter la table caractéristique

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par hat_et_m Voir le message
    Dans ce cas pouvez-vous me dire comment je dois implémenter la table caractéristique
    table caracteristique :
    id | id_produit | caracteristique | valeur


    voir même faire une autre table si les caractéristiques sont récurrentes

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

Discussions similaires

  1. Rechercher dans une table MySql
    Par tremeur53 dans le forum Requêtes
    Réponses: 9
    Dernier message: 27/05/2007, 17h20
  2. Problème d'insertion dans une table MYSQL
    Par greg69 dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/10/2005, 11h34
  3. Nombre d'enregistrement dans une table MySQL
    Par tom06440 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 21/10/2005, 19h07
  4. Comment importer un document CSV dans une table MySql ?
    Par magic8392 dans le forum Requêtes
    Réponses: 6
    Dernier message: 04/02/2005, 11h03
  5. recherche dans une table Access en ASP
    Par D-D dans le forum ASP
    Réponses: 3
    Dernier message: 09/06/2004, 10h12

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