Rechercher : dans
Par :

[php] moteur de recherche interne

Dernière réponse le 15 mar 2007 à 12:20:53 darksaif, le 9 mar 2007 à 17:02:07 
 Signaler ce message aux modérateurs

Bonjour j'ai un ptit probleme sur mon programme je vous explique :

C'est tout simple lorsque je fait une recherche et qu'il ya plusieurs reponses on trouve un certains nombres de liens qui s'affichent (je l'ai limité a 3). Comme google j'ai voulu étaler les résultats sur plusieurs pages. Là est le probleme quand je clique sur la page numero 2 ca me dit :

Notice: Undefined index: mot in c:\program files\easyphp1-8\www\moteurex-1\moteur.php3 on line 30
Veuillez saisir un ou plusieurs mot-clés avant de cliquer sur Rechercher !

je ne comprends pas pourquoi j'ai cette erreur :s

Merci d'avance pour votre aide

<html>
<head>
<title>Moteur de recherche</title>

<STYLE type=text/css>
A:link{ COLOR: #c0c0c0;TEXT-DECORATION: none }
A:visited{ COLOR: #ffffff;TEXT-DECORATION: none }
A:hover { COLOR: #00ff00;TEXT-DECORATION: none }
</STYLE>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body text="#FFFFFF" bgcolor="#000000" link="#9999FF" vlink="#6699FF" alink="#FFFF00">

<font face="Verdana" size=2>

<form action="moteur.php3" method="post">

<? include("config.inc.php3");?>
<?

/******************************************************************
* PROGRAMME PRINCIPAL
******************************************************************/

$et_ou="or";
$db_link = mysql_connect("$nomserv","$login","$mdp");
$mot = $_POST['mot'];;
$mots=split(" ",$mot);
$nombre_mots=count($mots);
$z=1;
$page=0;
$debut=0;
$texte=" contenant le mot <font color=00ff00>$mots[0]</font>";
$phrase="'%$mots[0]%'";
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;

// NOMBRE TOTAL D'ENREGISTREMENTS REPONDANT A LA REQUETE


$requete=mysql_db_query("$nombase","select count(*) from moteur where mots like $phrase order by id",$db_link);
$nb_total=mysql_result($requete,0,"count(*)");
$requete=mysql_db_query("$nombase","select * from moteur where mots like $phrase ",$db_link);
$num=mysql_num_rows($requete);

// DEFINITION DU MESSAGE A AFFICHER

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 Rechercher !";}
else if (strlen($mot)<2) {echo "Veuillez saisir au moins 2 caractères.";}

// AFFICHAGE DES RESULTATS

else {
echo "$nb_total réponse";
if ($nb_total>1) {echo "s";}
echo "$texte";

$i=0;
while($i<$num and $i<$limit)
{
$description=mysql_result($requete,$i,"description");
echo "<br><br></b>$description<br><font size=1></font>\n";
$i++;
}
$k=$i;

echo "<br><br>";

// AFFICHAGE DU LIEN PRECEDENT SI BESOIN EST
// (LA PREMIERE PAGES EST 0)

if ($page>0)
{
$precedent=$page-1;
print "<a href=\"$script_name?page=$precedent&mot=$mot\">page précédente</a> \n";
}

// AFFICHAGE DES NUMEROS DE PAGE

$i=0;$j=1;
if($nb_total>$limit)
{
while($i<($nb_total/$limit))
{
if($i!=$page){echo "<a href=\"$script_name?page=$i&mot=$mot\">$j</a> ";}
else {echo "<font color=00ff00>$j</font> ";}
$i++;$j++;
}
}

// AFFICHAGE DU LIEN SUIVANT SI BESOIN EST

if($debut+$limit<$nb_total)
{
$suivant=$page+1;
echo "<a href=\"$script_name?page=$suivant&mot=$mot\">page suivante</a>";
}
if ($page>0)
{
while($k<$nb_total)
{
echo "<br><br></b>$description<br><font size=1></font>\n";
$k++;
}
}
}

// DECONNEXION DE LA BASE DE DONNEE
mysql_close($db_link);
?>
</font>
</form>
</body>
</html>

Configuration: Windows XP
Firefox 1.5.0.10

Meilleures réponses pour « [php] moteur de recherche interne » dans :
[IE 7 et 8] Modifier le moteur de recherche par défaut VoirPour Internet Explorer 7 Ouvrez Internet Explorer. Faites un clic sur la flèche dans la barre de recherche en haut à droite. Cliquez sur "Modifier les paramètres de recherche par défaut". Vous pouvez : Définir un moteur de recherche...
Web - Moteur de recherche VoirIl existe une énorme quantité d'informations sur Internet (plusieurs millions ou milliards de documents), et ces informations sont pour la plupart renouvelées quotidiennement. Le moteur de recherche est un élément indispensable pour s'y...
PHP - Créer un moteur de recherche VoirIdée générale Le moteur de recherche ci-dessous ne correspond qu'à une idée possible de moteur de recherche simple, ne gérant qu'un seul mot clé. Le concept du fonctionnement de ce moteur est de créer une base de donnée contenant les mots clés de...
Rechercher sur Internet VoirRechercher sur Internet Etant donné le nom de pages web présentes pour le Web, il est nécessaire d'utiliser un outil pour rechercher une page spécifique correspondant à des critères de recherche: le moteur de recherche. Pour utiliser un moteur de...

1

 bbar, le 15 mar 2007 à 12:20:53

Salut.

$mot = $_POST['mot'];; 

déjà sur ta ligne 30, tu as 2 * ; ce qui en fait un de trop. Ensuite, ce message est en fonction des champs que tu fait passer d'une page à l'autre.
Ensuite, ligne 96 :
if($i!=$page){echo "<a href=\"$script_name?page=$i&mot=$mot\">$j</a> ";} 

passer le paramètre dans l'url, c'est la méthode get, il est donc normal que tu n'arrives pas à la récup. Je pense qu'il te faut faire un test pour vérifier l'existance
- de $_POST['mot'] (cas de la première page)
- de $_GET['mot'] (cas des pages suivantes)
dans le cas où tu souhaite garder la page.
Une autre solution consiste à créer un champ :
<input type=hidden" value="<?echo $mot:?>" name="mot">

tout ça dans un formulaire de type post

Répondre à bbar
Collection CommentÇaMarche.net