[php/mysql/javascript] Aide a la saisie

Signaler
Messages postés
29
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
19 novembre 2008
-
Messages postés
29
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
19 novembre 2008
-
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

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,

tu l'appelles sur quoi, cette fonction aide_saisie () ?
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
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
Messages postés
29
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
19 novembre 2008

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.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
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...).
Messages postés
29
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
19 novembre 2008

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 ?
++