[php/mysql/javascript] Aide a la saisie

knabis2000 Messages postés 29 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 19 novembre 2008 - 6 déc. 2005 à 11:28
knabis2000 Messages postés 29 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 19 novembre 2008 - 7 déc. 2005 à 10:13
Je veut creer une aide a la saisie d'une adresse mail.
Pour se faire il y'a un champ "mail"

le code javascript suivant :

function aide_saisie(){ var pre document.getElementById('mail').value; //mail input(texte)
document.getElementById('aide').src = "search_mail.php?pre="+pre ;//aide = iframe
}

donc affiche la page search_mail dans l'iframe "aide" :

[ ... connection MySQL ...]

$pre = $_GET['pre'];
$sql = "SELECT mail FROM clients WHERE mail LIKE '".$pre."%'" ;
$res = mysql_query($sql,$db) or die(mysql_error());
while($mail = mysql_fetch_array($res)){
echo $mail['mail']."
";
}

Tout marche mais .....

C trop long ! est ce que quelkqu'un saurait comment faire pour ameliorer la rapidité de l'affichage ??

Merci a tous.

5 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
6 déc. 2005 à 15:28
Hello,

tu l'appelles sur quoi, cette fonction aide_saisie () ?
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
6 déc. 2005 à 18:16
salut



pourquoi tu fais pas un truc genre :



<select name="mail">

<option value="...">...</option>

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
knabis2000 Messages postés 29 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 19 novembre 2008
7 déc. 2005 à 09:28
Pour malalam :

J'apellais la fonction aide_saisie() avec un onChange sur le input :( .... et magie qd je l'ai changé en onKeyup ca marché bcp mieux !!!!
Au passage j'en ai profité pour améliorer la fonction puisque que je me seert desormais des requetes XMLHttpRequest trouvé dans phpcs ;)

Pour coucou747:
je n'utilise pas de <select> car la fonction cherche dans une base de 7000 personne alors si je dois recupere tous les mails avant d'ouvrir la page ....

MErci a tous.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 déc. 2005 à 09:47
Les requêtes xmlhttp ne vont pas améliorer réellement la vitesse...et tu risques de vite saturer ton serveur de requêtes.
C'est l'idée à la base qui n'est peut-être pas adapté à ton environnement : serveur, bdd.
Je me doutais un peu que tu lançait ta fonction sur un onchange. Si j'ai bien compris, à chaque lettre tapée, ton code va effectuer une requête sur ta base. A chaque lettre, il va faire une requête sur une table contenant 7000 entrées...avec un LIKE, qui plus est (ce n'est déjà pas ce qu'il y a de plus rapide, comme clause)...en ramenant énormément de données au début (cela se rétrécit avec le nombre de lettres saisies).
Je ne sais pas si tu te rends compte du boulot que tu demandes à ton serveur de bdd.

Bref, ce que tu essayes de faire ne peut être fait que dans le cadre d'un site ayant peu de visites (et une petite table utilisateur), soit si tu as un environnement très, très costaud...
Si tu tiens à conserver ça, tu devrais essayer de soulager ton serveur de bdd. peut-être en creant une table ne contenant QUE les emails, en indexant correctement cette table, voire en la scindant alphabetiquement en plusieurs tables (c'est moche, mais bon...).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
knabis2000 Messages postés 29 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 19 novembre 2008
7 déc. 2005 à 10:13
Je rends tout a fait compte du boulot quer je demande au serveur mais c un site qui reste en local avec tout au plus 5 personnes qui s'y connecte en encore pas en meme temps ..... Je pense tout de meme créer une table necontenant que les emails mais pour d'autre raisons.
Y'a t'il une requetes plus adaptés que LIKE dans mon cas ?
++
0
Rejoignez-nous