REGEX avec variable

Résolu
Zaafiel Messages postés 2 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 16 septembre 2010 - 14 sept. 2010 à 10:35
Zaafiel Messages postés 2 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 16 septembre 2010 - 16 sept. 2010 à 10:33
Bonjour,

Je voudrai créer une regex utilisant une varible php.
Pour ne pas me perdre dans des explications, voici le code:

$lastname = sql_regcase(strip_tags($_POST['lastname']));
$firstname = sql_regcase(strip_tags($_POST['firstname']));

$seek = $bdd->prepare('SELECT lastname, firstname FROM data_person WHERE lastname LIKE :lastname OR firstname LIKE :firstname
ORDER BY lastname ASC');
$seek->execute(array('lastname' => $lastname, 'firstname' => $firstname));


A la place de LIKE :lastname et LIKE :firstname, je voudrais mettre une REGEX pour que la requête sorte tous les résultats commençant par l'entrée de l'utilisateur :

REGEXP \'[[:<:]]:lastname[[:>:]]\' ou bien
REGEXP \'[[:<:]]?[[:>:]]\' si j'enlève le tableau associatif, ou bien
REGEXP \'[[:<:]]' . $lastname . '[[:>:]]\' si je fais une requête non préparée.

Si vous avez des pistes ou LA solution, n'hésitez pas...

2 réponses

Zaafiel Messages postés 2 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 16 septembre 2010
16 sept. 2010 à 10:33
C'est bon en fait, j'ai fais plus simplement, sans utiliser de regex.

Il me suffisais d'utiliser un bon vieux LIKE :

LIKE (\'' . $variable . '%\')

Merci quand même
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 sept. 2010 à 16:57
pourquoi vouloir supprimer les parametres ? ca evite un certain nombre de soucis (injection, etc.)

surtout si ca fonctionne actuellement...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Rejoignez-nous