J'ai fait grace a un turorial un moteur de recherche
et le preobleme c'est quand il y a plus d'une page de reponse
Voici le code
<html>
<head>
<title> Excelabo : formulaires avancés</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta NAME="Author" CONTENT="Florence Cabon http://www.excelabo.net">
<meta http-equiv="Content-Language" content="fr">
</head>
<body>
<h1>Recherche de personnes inscrites</h1>
<?php
/// paramètres de connection à la base de données
require("connect.php");
$tous = mysql_query("SELECT * FROM jeux");
$nb_tous = mysql_num_rows($tous);
?>
Ce moteur vous permet de rechercher parmi les <? echo "<font color='#008080'><b>$nb_tous</b></font>"?> entrées de la table jeux.<br><br>
<form method="post" action="<?echo $PHP_SELF?>">
<input type="text" name="nom" size="20"> Nom<br>
<input type="text" name="description" size="20"> Description<br><br>
<input type=radio name=f_etou value="AND" checked>voir les fiches répondant à tous les critères demandés<br>
<input type=radio name=f_etou value="OR">voir les fiches comportant au moins un de ces éléments<br><br>
<input type="submit" value="Rechercher">
</form><br><br>
<?
$etou=$f_etou;
//s'il y a eu saisie :
if($nom!="" OR $description!=""){
//traitement des données du formulaire
//construction du critère de sélection suivant les entrées fournies
if ($nom!="" ){ //!= signifie "différent de"
$noms = split(" ",$nom);// on transforme la variable en tableau (array)
$nb_noms = count($noms);// nb d'éléments dans le tableau
$critere=" nom like '%$noms[0]%'";// $noms[0]= premier élément du tableau
$z=1;
while($z<$nb_noms){// on boucle pour fabriquer le critère avec tous les elts du tableau
$critere.=" $etou nom like '%$noms[$z]%'";
$z++;}
if ($description!=""){
$description = split(" ",$description);
$nb_description = count($description);
$z=0;
while($z<$nb_description){
$critere.=" $etou description like '%$description[$z]%'";
$z++;}
}//fin du if prénom pas vide
}//fin du if nom pas vide
else { $description = split(" ",$description);
$nb_description = count($description);
$critere=" description like '%$description[0]%'";
$z=1;
while($z<$nb_description){
$critere.=" $etou description like '%$description[$z]%'";
$z++;}
}// fin du else = si nom est vide
// NOMBRE D'ENREGISTREMENTS REPONDANT A LA REQUETE sur jeux
$requete = mysql_query("select * from jeux where $critere");
$nbT=mysql_num_rows($requete);
// DEFINITION DU MESSAGE A AFFICHER S'IL NY A PAS DE RESULTATS
if ($nbT==0) {echo "<div align='center'><font color='#993366'> Désolé, aucune fiche ne
correspond à tous les critères indiqués. Vérifiez l'orthographe, diminuez le nombre de critères et relancez la recherche.</font></div>";}
else {// AFFICHAGE DES RESULTATS PAGE PAR PAGE
if ($nbT>1) {$s= "s";} // utilisé pour éviter une faute d'orthographe dans la ligne en dessous...
echo "<Il y a <b>$nbT</b> réponse$s<br><br> ";
// on refait la requete mais en précisant les fiches à renvoyer
$limit=10; // vous pouvez faire varier ce nombre, voire même l'intégrer dans votre formulaire pour que ce soient vos visiteurs qui choisissent
$debut=$pge*$limit;
$requete2 = mysql_query("select * from jeux where $critere limit $debut, $limit");
echo '<table border=2> <tr>
<td>Aperçu</td>
<td>Lien</td>
<td>Description</td>
<td>Note</td>
<td>Taille</td>
<td>Noter!</td>
</tr>' ;while($row = mysql_fetch_array($requete2)){
$nom=stripslashes($row[nom]);
$description=$row[description];
$mail=$note[note];
echo '<tr><td><a href="#"onClick="window.open(\'http://mazflo007.free.fr/jeux/swf.php?id='. $row['id'].'&categorie='. $row['categorie'].'\',\'_blank\',\'toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, menuBar=0, width=700, height=600\');return(false)"><img src=http://mazflo007.free.fr/jeux/'. $row['categorie'].'/images/'. $row['id'].'.gif widht="100" height="100"></td>' ;
echo '<td><center><a href="#"onClick="window.open(\'http://mazflo007.free.fr/jeux/swf.php?id='. $row['id'].'&categorie='. $row['categorie'].'\',\'_blank\',\'toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, menuBar=0, width=700, height=600\');return(false)">'. $row['nom'].'</a></center></td>' ;
echo '<td>'. $row['description'].'</td>' ;
echo '<td>'. $row['taille'].'</td>' ;
echo ' <td>' ,round($row['moyenne'], 2), '/20</td>' ;
echo ' <td><a href="#"onClick="window.open(\'http://mazflo007.free.fr/jeux/note.php?id='. $row['id'].'\',\'_blank\',\'toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, menuBar=0, width=100, height=100\');return(false)"><div style="text-align: center">Noter le jeu</div></a></center></td>' ;
echo '</tr>' ;
}// fin du while (tant qu'il y a une ligne dans le tableau de résultats renvoyé par $requete2)
$nbpages=ceil($nbT/$limit); // ceil = plafond : pour arrondir à la valeur supérieure
// affichage de la première page si nécessaire (si nb total de pages supérieur à 5)
if($nbpages>3 and $pge>2){
echo "<a href=\"?pge=0&nom=$nom&description=$description&f_etou=$f_etou\"><b>Début</b></a> ";
}
// AFFICHAGE DU LIEN PRECEDENT SI BESOIN EST (LA PREMIERE PAGES EST 0)
if ($pge>0){
$precedent=$pge-1;
echo "<a href=\"?pge=$precedent&nom=$nom&description=$description&f_etou=$f_etou\">
<b><fontcolor='#993366'><</font></b></a> ";
}
// AFFICHAGE DES NUMEROS DE PAGE
$i=0;$j=1;
if($nbT>$limit){
while($i<($nbpages)){ // pour limiter l'affichage du nombre de pages restantes
if ($i>$pge-3 and $i<$pge+3){
if($i!=$pge)
{echo "<a href=\"?pge=$i&nom=$nom&description=$description&f_etou=$f_etou\">$j</a> ";}
else {echo "<b>$j</b> ";}//met en gras le N° de la page en cours
}//fin du if i>pge....
$i++;$j++;}//fin du while i<nbpages
} //fin du if nbT>limit
// AFFICHAGE DU LIEN SUIVANT SI BESOIN EST
if($pge<$nbpages-1){
$suivant=$pge+1;
echo "<a href=\"?pge=$suivant&nom=$nom&description=$description&f_etou=$f_etou\"><b>></b></a> ";
}
// affichage de la dernière page si nécessaire
if($nbpages>3 and $pge<$nbpages-3){
$fin=$nbpages-1;
echo "<a href=\"?pge=$fin&nom=$nom&description=$description&f_etou=$f_etou\"><b>fin</b> ($nbpages)</a>";
}
}// fin du else affichage des résultats.
}// fin du si il y a eu saisie
else { // s'il n'y a pas eu saisie
echo "indiquez vos critères de choix";}
?>
</body>
</html>
Si vous voulez voir l'erreur aller sur cette page http://mazflo007.free.fr/fc-phpmoteur2.phpdans description mettez "jeu" et appuyer sur rechercher
puis aller a la page 2
merci d'avance de vos reponses