Requête mysql avec REGEX
joboy84
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un formulaire de recherche.
Dans ma base de données, ces dernières sont sous le format de chiffres séparés d'une virgule (1,11,15)
Pour retrouver les lignes contenant le chiffre 1 j'ai fais dans phpmyadmin:
Ce code fonctionne, mais j'ai du mal à le faire fonctionner dans mon code php...
J'ai essayé '.(^|,)$cat($|,).' mais ca ne fonctionne pas.
Comment faire ?
Merci
J'ai un formulaire de recherche.
Dans ma base de données, ces dernières sont sous le format de chiffres séparés d'une virgule (1,11,15)
Pour retrouver les lignes contenant le chiffre 1 j'ai fais dans phpmyadmin:
SELECT * FROM jeux_concours WHERE categorie REGEXP (^|,)1($|,)
Ce code fonctionne, mais j'ai du mal à le faire fonctionner dans mon code php...
J'ai essayé '.(^|,)$cat($|,).' mais ca ne fonctionne pas.
$datas = $database->pdo->prepare(('SELECT * FROM jeux_concours WHERE categorie REGEXP "(^|,)$cat($|,)"');
Comment faire ?
Merci
A voir également:
- Requête mysql avec REGEX
- Mysql community server - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Mysql error 2002 ✓ - Forum Linux / Unix
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Erreur de requete facebook - Forum Facebook
2 réponses
Hello,
Peut être comme ça :
Peut être comme ça :
$datas = $database->pdo->prepare('SELECT * FROM jeux_concours WHERE categorie REGEXP (^|,)'.$cat.'($|,)');
Reivax962
Messages postés
3672
Date d'inscription
Statut
Membre
Dernière intervention
1 011
Ah mais oui, je n'avais pas fait gaffe aux guillemets et j'avais lu trop vite... J'ai cru que c'était la requête qui posait problème, pas le php... +1
Bonjour,
L'utilisation d'une Regex se justifie-t-elle vraiment ? Dans l'exemple que tu donnes, non, mais peut-être fais-tu des choses plus compliquées derrière.
Personnellement, j'aurais répondu à ton problème de la façon suivante :
SELECT * FROM jeux_concours WHERE categorie LIKE '1,%' OR categorie LIKE '%,1' OR categorie LIKE '%,1,%'
Je ne vois pas de façon plus simple.
La méthode "propre" consisterait à transformer le champ categorie en table (en utilisant une fonction à créer) et faire une requête standard dessus.
Xavier
L'utilisation d'une Regex se justifie-t-elle vraiment ? Dans l'exemple que tu donnes, non, mais peut-être fais-tu des choses plus compliquées derrière.
Personnellement, j'aurais répondu à ton problème de la façon suivante :
SELECT * FROM jeux_concours WHERE categorie LIKE '1,%' OR categorie LIKE '%,1' OR categorie LIKE '%,1,%'
Je ne vois pas de façon plus simple.
La méthode "propre" consisterait à transformer le champ categorie en table (en utilisant une fonction à créer) et faire une requête standard dessus.
Xavier