Petite question sur un script

cs_oggy Messages postés 8 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 8 mai 2003 - 24 sept. 2002 à 20:36
cs_boris Messages postés 35 Date d'inscription jeudi 27 décembre 2001 Statut Membre Dernière intervention 9 juillet 2004 - 4 oct. 2002 à 16:08
Salut !

Je viens de trouver ce script concernant un moteur de recherche interne:

<form method="post" action="resultat.php3">
Recherche :

</form>
<?
if($recherche){
$db = mysql_connect('localhost', 'login', 'password');
mysql_select_db('nom_de_la_base',$db);
$sql = 'SELECT url,titre,description FROM recherche_tbl WHERE description LIKE '%$recherche%';
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
while($data = mysql_fetch_array($req))
{
echo "[$data['url'] $data['titre']]
$data['description'].";
}
}
?>

Mais la ligne:

$sql = 'SELECT url,titre,description FROM recherche_tbl WHERE description LIKE '%$recherche%';

ne fait qu'une recherche que dans le champ recherche_tbl, c'est ça ?

Si oui, vous connaissez un script de moteur de recherche qui permet de rechercher un mot dans une table complète ?

Merci !

3 réponses

guilhemh Messages postés 36 Date d'inscription lundi 22 avril 2002 Statut Membre Dernière intervention 12 décembre 2005
25 sept. 2002 à 10:06
recherche_tbl c'est le nom de la table
@+
0
cs_oggy Messages postés 8 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 8 mai 2003
25 sept. 2002 à 12:49
alors peux tu me dire pourquoi j'ai des erreurs aux lignes en gras:

<form action= "recherche.php" method="post">
Saisissez un ou plusieurs mots :

</form>
<?
$limit=2;
require "sql_connect.php";
$mot=strtolower($mot);
$et_ou="or";
$mots=split(" ",$mot);
$nombre_mots=count($mots);
$z=1;
$texte="Pages contenant "$mots[0]" ";
$phrase ="'%$mots[0]%'";
echo '
'.$phrase.'
';
while($z<$nombre_mots)
{
$phrase.= " ".$et_ou." mots like '%$mots[$z]%'";
$texte.=" ";
if($et_ou=="and"){$texte.="et";}else{$texte.="ou";}
$texte.=" "$mots[$z]" ";
$z++;
}
if($debut == ""){$debut=0;}
$debut=$page*$limit;
mysql_query("select count(*) from avis like $phrase order by id");
$nb_total=mysql_result($requete,0,0);
$requete=mysql_db_query($sql_bdd,"select * from avis where mots like '$phrase' limit $debut,$limit",$db_link);
$num=mysql_num_rows($requete);
if ($num==0) {echo "Désolé, aucune page de ce site ne contient $mot ...";}
else if ($mot == "") {echo "Veuillez saisir un ou plusieurs mot-clés avant de cliquer sur 'OK' !";}
else if (strlen($mot)<2) {echo "Veuillez saisir au moins 2 caractères.";}
else {
echo " $nb_total réponse";
if ($nb_total>1) {echo "s";}
echo "
$texte";
$i =0;
while($i<$num)
{
$url=mysql_result($requete,$i,"url");
$description=mysql_result($requete,$i,"description");
$titre=mysql_result($requete,$i,"titre");
echo "

[$data['url'] $data['titre']]
$data['description'].";
}
}
?>

Mais la ligne:

$sql = 'SELECT url,titre,description FROM recherche_tbl WHERE description LIKE '%$recherche%';

ne fait qu'une recherche que dans le champ recherche_tbl, c'est ça ?

Si oui, vous connaissez un script de moteur de recherche qui permet de rechercher un mot dans une table complète ?

Merci !
0
cs_boris Messages postés 35 Date d'inscription jeudi 27 décembre 2001 Statut Membre Dernière intervention 9 juillet 2004
4 oct. 2002 à 16:08
Salut,

Premiere erreur : certainement $requete non defini. Pas de requete a executer.

Seconde erreur : certainement $sql_bdd non defini. Pas de base de données à executer.

Il faut verifier ce qui est fait dans sql_connect.php sur ces variables. Fait un echo de tes variables avant les 2 lignes d'erreur pour voir ce qu'elles contiennent.

A+
Boris
0
Rejoignez-nous