Aide pour script de recherche
Résolu
sporto
Messages postés
44
Statut
Membre
-
sporto Messages postés 44 Statut Membre -
sporto Messages postés 44 Statut Membre -
Bonjour,
je cherche de l'aide afin d'effectuer une recherche en auto-completion.
Voici une partie de mon script que j'aimerais remplacer par des informations tirées de la base de données.
Ceci est une liste des mots qu'on va soumettre à l'utilisateur ayant entré une ou plusieurs premiere lettre du mot qu'il souhaite rechercher. Je voudrais à la place de ceci faire intervenir ma base de données mais je ne sais pas comment m'y prendre pour la requete et la variable $liste.
Merci de m'aider à trouver une solution,
Cordialement,
Sporto
je cherche de l'aide afin d'effectuer une recherche en auto-completion.
Voici une partie de mon script que j'aimerais remplacer par des informations tirées de la base de données.
$liste = array("angulaire","arrêt","[...]","stop","zéro");
Ceci est une liste des mots qu'on va soumettre à l'utilisateur ayant entré une ou plusieurs premiere lettre du mot qu'il souhaite rechercher. Je voudrais à la place de ceci faire intervenir ma base de données mais je ne sais pas comment m'y prendre pour la requete et la variable $liste.
Merci de m'aider à trouver une solution,
Cordialement,
Sporto
Configuration: Windows XP Opera 9.62
15 réponses
-
Il te faut utiliser pour ca la fonction array_push()
En gros, tu fais ta requete sql, et dans le while { } , cela vas enregistrer dans ton array le champs que tu souhaites intéregrer à l'array.
array_push ;) -
Ok, je te remercie.
Je vais essayer ca desuite.
Merci et bonne soirée ;) -
Toi aussi. Si ca fonctionnes, n'oublies pas de passer le post en 'Résolu' ;)
-
Voila ma requete mais une fois dans le while je ne sais pas comment faire malgrès etre sur le manuel PHP...
Je n'ai jamais utilisé cette fonction. Que mettre dans le while sachant que je veux le champs "Titre"?$requete=mysql_query("SELECT * FROM ajax_film"); while($result=mysql_fetch_array){ } -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
int array_push ( array &$array , mixed $var [, mixed $... ] )
Je dirais :
// SELECT TITRE et non * $requete=mysql_query("SELECT titre FROM ajax_film"); while($result=mysql_fetch_array){ array_push($liste,$result['titre']); } -
Non toujours pas, voici mon code:
//$liste = array("aaaaa","bbbb","zéro"); include('../connectdb.php'); $requete=mysql_query("SELECT Titre FROM ajax_test"); while($result=mysql_fetch_array($requete)){ array_push($liste,$result['Titre']); } -
Oui mais tu as une erreur ? Laquelle ?
Sinon print_r($liste) après le while pour voir ce qu'il en sort. -
Ben justement je n'ai rien, ni erreur ni le print_r(); qui ressort.
Meme quand je le met avec la liste de départ...
C'est un script javascript qui appel celui-ci. -
Délsolé du double post.
Le script complet:<?php header('Content-Type: text/xml;charset=utf-8'); echo(utf8_encode("<?xml version='1.0' encoding='UTF-8' ?><options>")); if (isset($_GET['debut'])) { $debut = utf8_decode($_GET['debut']); } else { $debut = ""; } $debut = strtolower($debut); //$liste = array("aaaa","abbb","zéro"); include('../connectdb.php'); $requete=mysql_query("SELECT Titre FROM ajax_test"); while($result=mysql_fetch_array($requete)){ array_push($liste,$result['Titre']); } function generateOptions($debut,$liste) { $MAX_RETURN = 10; $i = 0; foreach ($liste as $element) { if ($i<$MAX_RETURN && substr($element, 0, strlen($debut))==$debut) { echo(utf8_encode("<option>".$element."</option>")); $i++; } } } generateOptions($debut,$liste); echo("</options>"); ?> -
Avant d'appeller le javascript en question, faudrait que ta mise en array fonctionne, donc désactives la partie requetes js , il faut voir "à nu" ce que ca donne ; donc que la partie php.
EDIT : après ton double post ;)
> Tu renvoies un header xml , désactives ceci pour voir ce que donne la requetes php en dur . Je te proposes ceci :<?php /* header('Content-Type: text/xml;charset=utf-8'); echo(utf8_encode("<?xml version='1.0' encoding='UTF-8' ?><options>")); if (isset($_GET['debut'])) { $debut = utf8_decode($_GET['debut']); } else { $debut = ""; } $debut = strtolower($debut); //$liste = array("aaaa","abbb","zéro"); */ include('../connectdb.php'); $requete=mysql_query("SELECT titre FROM ajax_test"); while($result=mysql_fetch_array($requete)){ array_push($liste,$result['titre']); } print_r($liste); /* function generateOptions($debut,$liste) { $MAX_RETURN = 10; $i = 0; foreach ($liste as $element) { if ($i<$MAX_RETURN && substr($element, 0, strlen($debut))==$debut) { echo(utf8_encode("<option>".$element."</option>")); $i++; } } } generateOptions($debut,$liste); echo("</options>"); */ ?>
Dans un premier temps, appelle directement la page dans ton navigateur, elle devrait interpréter que la requete sql et afficher $liste si les enregistrements sont bons. -
Arf oui, je suis bête :-p
Donc il me renvoie cette erreur autant de fois qu'il y a d'éléments dans la base de données:Warning: array_push() [function.array-push]: First argument should be an array in /var/www/virtual/sondeo.go1.cc/sondeo_fr/htdocs/test/fichiers/options.php on line 19
-
Hum, déclarons la variable en question d'abord :
$liste = array();
A positionner avant le while bien sur ;) -
Ben je te dis merci !!
Maintenant il ca marche meme s'il me reste quelques soucis...
Tous mes Titre commence pas une Majuscule :-S .
Je vais voir si je trouve comment faire.
Encore merci. -
Ok dak, de toute facon je vais dormir.
Si tu as toujours un soucis à ce niveau là, refais un post et je te filerai un coup de main dans la mesure du possible ;)
A plus. -