Vous n'êtes pas identifié(e).
Pages :: 1
salut je cherche un moteur de recherche pour ma base de donnée .
je suis tombé sur un exemple sur le net que je veux exploité mais j'y arrive pas .
je savoir comment nommer chaque fichier . je me dis que cela à une importance dans la conception de ce moteur
ensuite aider moi pas a pas à arriver a concevoir mon moteur
voici les differents code :
1 fichier search
<head>
<title>Creation de la table</title>
</head>
<body
<?php
$host = "localhost";
$user = "root";
$password = " ";
$bdd = "nosvictimes";
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");
$query = "CREATE TABLE search (
lien varchar(128) NOT NULL,
keyword text,
titre varchar(128),
id INT(11),
PRIMARY KEY (id)
)";
mysql_query($query) or die ("Erreur de modification de la table");
// on ferme la base
mysql_close();
?>
</body>
</html>
2. fichier
$host = "Le serveur de base de données";
$bdd = "Votre base de données";
/* Connexion avec MySQL */
mysql_connect($host,$user,$password) or die ("Impossible de se connecter
au serveur de base de donnees");
mysql_select_db($bdd) or die ("Impossible d'accéder à la base $bdd");
$query = "DELETE FROM search";
mysql_query($query) or die ("Erreur de modification de la table");
function ScanDir($Directory){
$MyDirectory = opendir($Directory);
while($Entry = readdir($MyDirectory)) {
echo "<br>entry= $Entry<br>";
echo "repertoire= $Directory<br>";
echo "chemin= $Directory/$Entry<br>";
if(is_dir($Entry)&& $Entry != "." && $Entry != "..") {
echo "<b><font color=\"red\">$Entry</font>
</b> est un repertoire<br>";
ScanDir("$Entry/$Directory");
}
else {
if (eregi(".htm",$Entry)) {
$MetaTags = get_meta_tags($Directory."/".$Entry);
if ($MetaTags["robots"] == "all") {
$MetaKey = $MetaTags["keywords"];
$MetaKey = strtoupper($MetaKey);
echo "Meta($Directory/$Entry): $MetaKey
\n";
$MetaTitre = $MetaTags["title"];
echo "Meta($Directory/$Entry): $MetaTitre
\n";
$query = "INSERT INTO search (lien,keyword,titre)
VALUES(\"$Directory/$Entry\",\"$MetaKey\",\"$MetaTitre\")";
$mysql_result = mysql_query($query) or die ("Erreur
de modification de la table par la requete \"$query\"");
}
}
}
}
closedir($MyDirectory);
}
$open_basedir=".";
ScanDir(".");
mysql_close();
?>
fichier 3
$user = "Votre nom d'utilisateur";
$password = "Votre mot de passe";
$bdd = "Votre base de données sur le serveur";
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 "
<html>
<head>
<title>Résultat de la recherche</title>
</head>
<body>";
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!
<p>";
}
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 "
<h2>Aucun résultat ne correspond à votre recherche</h2>
<p>
";
}
// 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 "
<a name=\"#resultat\"><h2>Résultat: Un article trouvé</h2></a>
<p>";
}
// Dans le cas contraire le message est au pluriel...
else {
echo "
<a name=\"#resultat\"><h2>Résultat: $Nombre articles trouvés</h2></a>
<p>";
}
while($row = mysql_fetch_row($result))
{
echo "
<p>\n
<b>$row[2]</b>\n
<br><a href=\"../$row[0]\">Visualiser l'article</a>\n
<p>\n
";
}
}
}
// on ferme la base
mysql_close();
?>
</body>
</html>
edit modo : trop de code, nous ne somme pas des correcteurs
la prochaine fois, je coupe
Dernière modification par msi79 (22-10-2011 10:32:39)
Hors ligne
Bonsoir,
Sans vouloir faire de vilains jeux de mots, tu ne trouveras pas de moteur de recherche comme ça par hasard en soulevant une table.
Tout ceci pour te dire, que ce n'est pas quelque chose qui s'improvise mais c'est un gros travail en amont a effectuer, fonctionnalités, CDC complet et détaillé, optimisations inclues, un vrai travail de professionnel. Dans ton exemple tu utilises des champs text, qui ont des particularités nombreuses notamment au niveau stockage en fonction de la collation choisie et des comportements / limitations particuliers lors de recherches en mode fulltext et également lorsqu'ils sont indexés, etc, etc..., sans parler de l'obligation d'utilisation intensive d'expressions régulières complexes.
Bref, ta démarche est louable, mais le seul conseil avisé que je puisse te donner sur un forum de débutant, c'est d'acquérir d'autres compétences, celles de ceux qui sont les plus éloignées et opposées à celles d'un débutant.
Bonne continuation.
Jc
EDIT: Si tu veux qu'on t'aide pas à pas commence par faire ce que j'ai cité au début de mon post, en sachant que le codage de ton moteur de recherche ne pourra prendre place qu'en dernier lieu.
Dernière modification par Jc (22-10-2011 00:41:11)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
mais aide moi a corriger ca
Hors ligne
Je ne voudrais que tu penses que je suis .... mais si tu pouvais coloriser ton code, ca m'éviterais de passer trop de temps à le déchiffrer, temps que je n'ai pas en ce moment. merci
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
coloriser ton code . ça ve dire quoi
je comprend pas
Hors ligne
j'arrive pas à coloriser ( je ne comprend pas ce terme).
mais s'il te plait lit mon code et aide moi
edit modo : trop de code, nous ne somme pas des correcteurs
la prochaine fois, je coupe
Dernière modification par msi79 (22-10-2011 18:30:54)
Hors ligne
Bonsoir,
Ton premier fichier crée la table dans la base de données
Ton deuxième efface le contenu de ta table, Lit le contenu d'un site (la racine), récupère le contenu titre et les mots clés contenus dans les balises META correspondantes et les stocke dans la table.
Ton troisième recherche les mots clés demandés dans la table (parmis les mots clés et les titres) et les affiche lorsque des enregistrements sont trouvés.
Ton dernier n'est toujours pas un moteur de recherche
En fait il te manque le fichier formulaire de recherche de mots clés sur un site. Il faut savoir que ton code ne recherche pas dans le contenu des pages mais scanne uniquement les entêtes de fichier.
Bonne continuation
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bon, je sens que je commence à m'escagacer grave, là !
Alors faudrait voir à respecter les consignes.
Si tu ne sais pas coloriser le code, utilise au moins le wall !
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
j'ai coloré maintenant
Dernière modification par msi79 (22-10-2011 22:26:32)
Hors ligne
tu utilise une méthode d'utilisation des formulaires qui n'est plus utilisable par défaut avec php. Je te conseil donc de revoir la validation des formulaires
http://www.phpdebutant.org/article56.php
ligne 40 à 100 (ou par la) pourquoi deux requetes sql ? tu fait directement la dexième et utilise mysql_num_rows pour la condition ce sera plus simple.
je te conseil de reprendre ton code morceau par morceau de les valider un par un puis de les assembler.
@+
Il en faut peu pour être heureux pompompompompompompompompompompom
Hors ligne
Pages :: 1