|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : février 2008 Messages : 34 ![]() |
Bonjour a tous,
je suis en train de modifier le formulaire d'inscription d'un des sites de ma société (formulaire virtuemart) afin de proposer à l'utilisateur une liste de pseudos libres (non enregistrés dans ma base). Pour le moment, j'ai bouclé le js qui permet de lancer les requêtes AJAX + effets sur le css. Coté serveur, mon script récupère le pseudo fournis par l'utilisateur, le mail (si renseigné lors du choix du pseudo) puis vérifie si le pseudo est dispo. Si le pseudo est déjà pris, le script vérifie la disponibilité de l'adresse mail en tant que pseudo.. Jusque la, tout vas bien. Mais j'aimerais aussi pouvoir proposer d'autre pseudo qui serait des variantes du pseudo fournis par l'utilisateur. Exemple : l'utilisateur veut le pseudo "paul" => "paul" est déjà pris => "paul14" (car les pseudo "paul1" jusque "paul13" existe déjà) Comment faire pour ressortir le pseudo "paul14" sans tester tous les autres avant (paul1, paul2, paul3,....) Merci d'avance |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 726 ![]() |
Salut
Citation:
Théoriquement ça devrait retourner juste le dernier trouvé, en quelque sorte.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : février 2008 Messages : 34 ![]() |
merci de cette réponse rapide...
Je pensais que cela allait me retourner aussi les pseudo tels que "paulM", "paulJean1",... Je vais tester ça tout de suite et te tiens au courant |
|
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Inscription : février 2008 Messages : 34 ![]() |
Je viens de tester :
ma requête : "SELECT `username` FROM #__users WHERE username like '$uname%' order by `username` DESC LIMIT 1" J'ai trois pseudo en base : paul , paul5 et paulTest. Lolrsque je propose paul, malheureusement, il me retourne paulTest... |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 726 ![]() |
Citation:
Du coup ça va difficilement ressortir "paul14" selon ton exemple. Par conséquent il faudrait récupérer dans la Bdd tout ce qui existe après la chaine (et non pas 1 seul enregistrement finalement). Ensuite faire une boucle (de 1 à 100 par exemple), puis tester si la chaine concaténée au compteur (genre paul1, puis paul2, etc ...) existe parmi les résultats de la requête. Dès qu'un élément n'existe pas (donc libre), alors on sort de la boucle, on retient cet élément et c'est bon. Enfin, c'est un exemple, et si j'ai bien compris.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : février 2008 Messages : 34 ![]() |
Je me suis plongé dans un gros bouquin de SQL.
Du coup, je me suis aperçut qu'il était possible d’utiliser les expressions régulières dans une requête.. Voici donc ma requête : Code :
$database->setQuery("SELECT `username` FROM #__users WHERE username REGEXP '^".$uname."[0-9]' order by `username` DESC LIMIT 1");
Du coup, ça me remonte bien "paul5", il me reste plus qu'à implémenter la partie numérique du pseudo.. Merci bien pour ton aide, je vais clore ce sujet.. ++ |
|
|
00
|
|
|
#7 | |
|
Futur Membre du Club
![]() Inscription : février 2008 Messages : 34 ![]() |
Citation:
Merci encore |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com