Aide pour script de recherche
Résolu
sporto
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
-
sporto Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
sporto Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
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
A voir également:
- Aide pour script de recherche
- Script vidéo youtube - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Mas script - Accueil - Windows
- Recherche photo - Guide
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 ;)
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 ;)
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"?
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 questionint 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.
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.
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:
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 :
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.
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:
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 ;)
$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.
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.