TE.V Tutorial
6 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
6 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Un moteur de recherche basiqueRubrique : Dream & PHPDreamweaver MXLogiciel :Description : Dans le cadre d'un site dynamique qui doit afficher beaucoup d'informations provenant d'une base de données il est utile de créer un moteur de recherche pour accéder facilement et rapidement à certaines de ces données, suivant des critères précis, entrés dans un champ de formulaire par l'internaute.Dans ce tutorial nous allons voir comment créer un moteur de recherche basique avec les outils de Dreamweaver MX et le langage PHP/MySql, le principe étant le même avec les autres modèles de serveur.Création du formulaire de rechercheOn crée tout d'abord deux pages, l'une se nommant moteur.php, la seconde resultat.php.Dans la page "moteur.php" on insère un formulaire ayant pour nom "recherche", méthode "POST" et action la page "resultat.php".On y place un champ texte qui va servir à la recherche, on ajoute un bouton d'envoi que l'on nomme "Rechercher un film".On donne pour nom "search" au champ de formulaire, avec une largeur de 40.On enregistre et on ferme la page.Création de la requête de résultatC'est la page "resultat.php" qui va recevoir la requête du formulaire, traiter cette requête vers la base de données et afficher le résultat.Vous pouvez télécharger la base de données utilisé pour le tutorial ici.Lors de la création du jeu d'enregistrement on passe de suite au mode "Avancé", on sélectionne la connexion "flashxpress", on nomme le jeu d'enregistrement ...

Informations

Publié par
Nombre de lectures 63
Langue Français

Extrait

Un moteur de recherche basique
Rubrique :Dream & PHP Logiciel :Dreamweaver MX Description :Dans le cadre d'un site dynamique qui doit afficher beaucoup d'informations provenant d'une base de données il est utile de créer un moteur de recherche pour accéder facilement et rapidement à certaines de ces données, suivant des critères précis, entrés dans un champ de formulaire par l'internaute. Dans ce tutorial nous allons voir comment créer un moteur de recherche basique avec les outils de Dreamweaver MX et le langage PHP/MySql, le principe étant le même avec les autres modèles de serveur.
Création du formulaire de recherche
On crée tout d'abord deux pages, l'une se nommant moteur.php, la seconde resultat.php. Dans la page "moteur.php" on insère un formulaire ayant pour nom "recherche", méthode "POST" et action la page "resultat.php".
On y place un champ texte qui va servir à la recherche, on ajoute un bouton d'envoi que l'on nomme "Rechercher un film".
On donne pour nom "search" au champ de formulaire, avec une largeur de 40.
On enregistre et on ferme la page.
Création de la requête de résultat
C'est la page "resultat.php" qui va recevoir la requête du formulaire, traiter cette requête vers la base de données et afficher le résultat. Vous pouvez télécharger la base de données utilisé pour le tutorialici.
Lors de la création du jeu d'enregistrement on passe de suite au mode "Avancé", on sélectionne la connexion "flashxpress", on nomme le jeu d'enregistrement "video" et dans "Database Items" on sélectionne les champs de la table qui nous intéresse, puis on clique sur "Select". Pour faire apparaître les résultats ordonnés par titre et de manière ascendante, on sélectionne ce champ puis on clique sur "ORDER BY" (l'interface peut changer, ma version de Dream est bilingue malgré moi ,)).
Paramètres de recherche
Pour spécifier les paramètres dont nous avons besoin dans notre requête, on clique sur le bouton + dans l'interface, s'affiche une nouvelle fenêtre.
Nous allons spécifier trois types de recherche possible, et pour ce faire on ajoute donc autant de paramètre que de type de recherche.
J'ai remarquer que Dream avait tendance à renommer mes noms de variables dans les requêtes SQL, je garde donc le nom par défaut "colname", la valeur par défaut "0", "Runtime Value" la méthode, ici POST, la requête provenant d'un formulaire, "search" étant la valeur, $_POST['search'] étant une variable globale qui va récupérer la valeur du champ texte du formulaire de la page "moteur.php", cette valeur étant passé par la méthode POST.
On complète alors notre requête SQL, sachant que la clause "WHERE" nous permets de spécifier un champ de la table précis et la clause "LIKE"de chercher quelque chose qui ressemble à notre texte passé en paramètre.
En bon français : sélectionner les "titre", "realisateur", "acteurs", "description" dans la table "video" où "titre" ressemble à "colname" (valeur du champ de formulaire "search") ou bien "realisateur" ressemble à "colname" (valeur du champ de formulaire "search") ou bien "acteurs" ressemble à "colname (valeur du champ de formulaire "search") ordonné par "titre" de manière ascendante.
Ce qui donnes en source SQL dans Dreamweaver :
SELECT video.titre, video.realisateur, video.acteurs, video.description FROM video WHERE titre LIKE '%colname%' OR realisateur LIKE '%colname%' OR acteurs LIKE '%colname%' ORDER BY titre ASC
On utilise les simples quotes ' pour encadrer notre variable, l'utilisation du signe pourcentage % avant et après le nom de la variable permettant d'inclure le terme recherché avant, dans et après les données du champ de la table, par exemple une recherche sur le mot "jo" renverra tous les enregistrements comportant Jon, John, VELJOHNSON, Josiane, JOFFE, etc, dans au moins un des champs de la table spécifiés dans notre requête.
A savoir que c'est le type de champ utilisé dans votre base de données qui fera que le moteur de recherche est sensible à la casse ou non, pour en savoir plus reporter vous aux sites traitant de SQL ou mieux aux spécifications de votre base de données.
Affichage de la requête
On crée un tableau de quatre lignes et 2 colonnes, dans lequel vont venir se placer les différents champs de notre requête, puis on sélectionne le tableau et on fait une région répétée de tous les enregistrements ("Fenêtre, Comportements de serveur, Région répétée").
Conditions d'affichage
Il nous faut maintenant définir une conditions d'affichage, car si la requête ne renvoie aucun résultat le tableau va être affiché par défaut, ce qui n'est franchement pas esthétique mais surtout inutile.
On sélectionne la totalité du tableau, "Fenêtre, Comportements de serveur, Afficher, Afficher si le jeu d'enregistrement n'est pas vide".
Et on choisit le jeu d'enregistrement concerné, donc ici "video".
Message d'erreur et de résultat
Notre condition appliquée un peu plus haut ne suffit pas, il faut aussi tester si le champ de formulaire est bien rempli ou au contraire vide, nous allons créer un script en PHP pour ce faire, qui va nous permettre en même temps d'afficher le nombre de résultats, de mettre en gras le texte recherché et d'afficher un message d’erreur en cas de champ de formulaire vide.
A savoir que les commentaires en PHP sont, pour une ligne simple, un double slash // ou encore un dièse #, et slash étoile /* étoile slash */ pour des commentaires multiligne.
// ceci est un commentaire simple ligne # ceci aussi est un commentaire simple ligne /* ceci est un commentaire multiligne */
Le code source :
<?php // on définis une variable (search) et on spécifie sa méthode d'envoi (POST) $search=$_POST['search']; // si la variable "search" est vide, on affiche un message d'erreur if(empty($search))  {echohtmlentities("Erreur ! Le champ de recherche est vide."); // et on clôt le script exit();  } /* unseul enregistrement trouvé, on affiche le message voulu  onen profite pour mettre en gras le champ de recherche */ elseif ($totalRows_video==1)  {echo''.$totalRows_video.' '.htmlentities("enregistrement trouvé pour votre requête :")'. <strong>'.$_POST['search'].'</strong>';  } // plusieurs enregistrements trouvés, on affiche le message voulu elseif ($totalRows_video>1)  {echo''.$totalRows_video.' '.htmlentities("enregistrements trouvés pour votre requête :").' <strong>'.$_POST['search'].'</strong>';  }  else // pas d'enregistrement trouvé, on affiche le message voulu { echo''.htmlentities("aucun enregistrement trouvé pour votre requête :").' <strong>'.$_POST['search'].'</strong>';  } // fin du script ?>
Il faut donc passer en mode "code source" dans Dreamweaver pour placer ce script avant notre tableau, afin que si le script renvoie un message d'erreur la requête s'arrête.
Ce qui nous affiche en cas de message d'erreur :
Et avec un seul résultat :
Pour vous simplifier la vie j'ai compiler ce script en extension pour Dreamweaver, extension que vous pouvez télécharger ici, une fois installé elle est accessible à partir de "Fenêtre> Comportements de serveur> T.E.V> Conditions> PHP Search Result.
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents