Bonjour,
Je viens de créer un site mais je rencontre un problème actuellement. Je voudrais effectuer une recherche via mots-clés sur des fichiers qui se trouvent sur un emplacement précis.
J’ai créé une 1ère page où j’ai placé ce premier script :
Entrez un mot clé:
Ensuite j’ai créé le fichier search.php3
<?php $host = "localhost"; $user = "root"; $password = ""; $bdd = "test"; mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible"); // on choisit la bonne base mysql_select_db($bdd) or die ("Connexion a la base impossible"); echo " Résultat de la recherche "; if (($Mot == "")||($Mot == "%")) { // Si aucun mot clé n'a été saisi, // le script demande à l'utilisateur // de bien vouloir préciser un mot clé echo " Veuillez entrer un mot clé s'il vous plaît!"; } else { // On selectionne les enregistrements contenant le mot clé // dans les keywords ou le titre $query = "SELECT distinct count(lien) FROM search WHERE keyword LIKE \"%$Mot%\" OR titre LIKE \"%$Mot%\" "; $result = mysql_query($query); $row = mysql_fetch_row($result); $Nombre = $row[0]; // Si aucun enregistrement n'est retourné, // on affiche un message adéquat if ($Nombre == "0") { echo "
Aucun résultat ne correspond à votre recherche
";
}
// Sinon, on affiche le nombre d'enregistrements correspondant
// et les résultats eux-mêmes
else {
$query = "SELECT distinct lien,keyword,titre FROM search
WHERE keyword LIKE \"%$Mot%\"
OR titre LIKE \"%$Mot%\" ORDER by titre ASC";
$result = mysql_query($query);
// Si un seul enregistrement est trouvé, on affiche un message au singulier
if ($Nombre == "1") {
echo "
Résultat: Un article trouvé
";
}
// Dans le cas contraire le message est au pluriel...
else {
echo "
Résultat: $Nombre articles trouvés
"; } while($row = mysql_fetch_row($result)) { echo "
\n
$row[2]\n
Visualiser l'article\n
\n "; } } } // on ferme la base mysql_close(); ?>
Ensuite j’ai créé mon fichier de base de données via phpmyadmin
– phpMyAdmin SQL Dump
– version 2.9.1.1
– www.phpmyadmin.net…
– Serveur: localhost
– Généré le : Jeudi 19 Juin 2008 à 09:18
– Version du serveur: 5.0.27
– Version de PHP: 5.2.0
– Base de données: pilotage
–
– Structure de la table search
CREATE TABLE search
(
lien
varchar(128) NOT NULL,
keyword
text NOT NULL,
titre
varchar(128) NOT NULL,
id
int(11) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
–
– Contenu de la table search
INSERT INTO search
(lien
, keyword
, titre
, id
) VALUES
(‘le lien vers la documentation’, ‘nom de la consigne’, ‘titre’, 1);
–> Quand je lance ma recherche cela ne marche pas, je précise que les valeurs se trouvant dans le fichier base de données sont fictifs volontairement. J’utilise easyphp et j’ai testé en local. Pourriez-vous m’aider svp? Je vous en remercie par avance