Moteur de recherche

Eléphant du PHP | 101 Messages

20 nov. 2005, 14:32

bonjour
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">&nbsp;Nom<br>
<input type="text" name="description" size="20">&nbsp;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>&nbsp;";
	}
// 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>&nbsp;";
	}
// 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>&nbsp;";}
			else {echo "<b>$j</b>&nbsp;";}//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>&nbsp;";
	}	
// 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.php
dans description mettez "jeu" et appuyer sur rechercher
puis aller a la page 2
merci d'avance de vos reponses

Mammouth du PHP | 19672 Messages

20 nov. 2005, 14:36

J'ai testé et en cherchant "jeux", je n'ai qu'une seule page avec deux jeux présentés... :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

20 nov. 2005, 14:37

je me suis tromper c'est jeu qu'il faut entrer
dsl

Mammouth du PHP | 19672 Messages

20 nov. 2005, 15:13

Je vois : bon, je vais te mettre sur la voie : la première chose à faire, c'est mettre de l'ordre dans ton code: comment veux-tu t'y retrouver dans ce foutoir ? Donne-toi la discipline d'écrire ton code proprement indenté en séparant correctement le PHP des autres langages (SQL ou HTML) et ce sera tout de suite une avancée. Je t'ai mâché le boulot en corrigeant en plus un point précis qui risque fort de changer certaines choses, mais peut-être pas tout. La piste de solution après 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);
?>
<p>Ce moteur vous permet de rechercher parmi les <font color="#008080"><b><? echo($nb_tous); ?></b></font> entrées de la table jeux.</p>
<br>
<form method="post" action="<?php echo($_SERVER['PHP_SELF']); ?>">
  <input type="text" name="nom" size="20">&nbsp;Nom<br>
  <input type="text" name="description" size="20">&nbsp;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>
<?php
$etou = $f_etou;
//s'il y a eu saisie :
if($nom != "" || $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)
    {
?>
<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>
<?php
    }
    else
    {
        // AFFICHAGE DES RESULTATS PAGE PAR PAGE
        if ($nbT>1)
        {
            $s = "s";
        } // utilisé pour éviter une faute d'orthographe dans la ligne en dessous...
?>
<p><Il y a <b><?php echo($nbT); ?></b> réponse<?php echo($s); ?></p>
<br>
<?php
        // 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 ."");
?>
<table border="2">
  <tr>
    <td>Aperçu</td>
    <td>Lien</td>
    <td>Description</td>
    <td>Note</td>
    <td>Taille</td>
    <td>Noter!</td>
  </tr>
<?php
        while($row = mysql_fetch_array($requete2))
        {
            $nom=stripslashes($row[nom]);
            $description=$row[description];
            $mail=$note[note];
?>
  <tr>
    <td><a href="#" onClick="window.open('http://mazflo007.free.fr/jeux/swf.php?id=<?php echo($row['id']); ?>&categorie=<?php echo($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/<?php echo($row['categorie']); ?>/images/<?php echo($row['id']); ?>.gif widht="100" height="100"></td>
    <td><center><a href="#" onClick="window.open('http://mazflo007.free.fr/jeux/swf.php?id=<?php echo($row['id']); ?>&categorie=<?php echo($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);"><?php echo($row['nom']); ?></a></center></td>
    <td><?php echo($row['description']); ?></td>
    <td><?php echo($row['taille']); ?></td>
    <td><?php echo(round($row['moyenne'], 2)); ?>/20</td>
    <td><a href="#"onClick="window.open('http://mazflo007.free.fr/jeux/note.php?id=<?php echo($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>
  </tr>
<?php
        }// fin du while (tant qu'il y a une ligne dans le tableau de résultats renvoyé par $requete2)
?>
</table>
<?php
        $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 && $pge > 2)
        {
?>
<a href="?pge=0&nom=<?php echo($nom); ?>&description=<?php echo($description); ?>&f_etou=<?php echo($f_etou); ?>"><b>Début</b></a>&nbsp;
<?php
        }
        // AFFICHAGE DU LIEN PRECEDENT SI BESOIN EST (LA PREMIERE PAGES EST 0)
        if ($pge > 0)
        {
            $precedent = $pge - 1;
?>
<a href="?pge=<?php echo($precedent); ?>&nom=<?php echo($nom); ?>&description=<?php echo($description); ?>&f_etou=<?php echo($f_etou); ?>"><b><fontcolor='#993366'><</font></b></a>&nbsp;
<?php
        }
        // 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) && $i < ($pge + 3))
                {
                    if($i != $pge)
                    {
?>
<a href="?pge=<?php echo($i); ?>&nom=<?php echo($nom); ?>&description=<?php echo($description); ?>&f_etou=<?php echo($f_etou); ?>"><?php echo($j); ?></a>&nbsp;
<?php
                    }
                    else
                    {
?>
<b><?php echo($j); ?></b>&nbsp;
<?php
                    }//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);
?>
<a href="?pge=<?php echo($suivant); ?>&nom=<?php echo($nom); ?>&description=<?php echo($description); ?>&f_etou=<?php echo($f_etou); ?>"><b>></b></a>&nbsp;
<?php
        }
        // affichage de la dernière page si nécessaire
        if($nbpages > 3 && $pge < ($nbpages - 3))
        {
            $fin=$nbpages-1;
?>
<a href="?pge=<?php echo($fin); ?>&nom=<?php echo($nom); ?>&description=<?php echo($description); ?>&f_etou=<?php echo($f_etou); ?>"><b>fin</b> (<?php echo($nbpages); ?>)</a>
<?php
        }

    }// fin du else affichage des résultats.
}// fin du si il y a eu saisie
else
{ // s'il n'y a pas eu saisie
?>
<p>Indiquez vos critères de choix</p>
<?php
}
?>
</body>
</html>
Tu as fait ton code sur la base d'une directive register_globals à ON alors qu'elle est probablement à OFF : penses-y soigneusement et tu vas trouver la solution.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

20 nov. 2005, 15:19

Comment le mettre sur off ?

Mammouth du PHP | 19672 Messages

20 nov. 2005, 15:23

Ça se passe dans le php.ini, mais ce n'est pas le problème : comment récupères-tu les variables de l'url ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

20 nov. 2005, 15:27

avec $_GET[]

Mammouth du PHP | 19672 Messages

20 nov. 2005, 15:30

excellent: où donc est ce $_GET dans ton code ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

20 nov. 2005, 15:31

il n'y est pas

Mammouth du PHP | 19672 Messages

20 nov. 2005, 15:33

CQFD :arrow: il faudrait peut-être bien commencer par là.

Par exemple:
$pge = isset($_GET['pge']) ? $_GET['pge'] : 0;
Si tu regarde le tuto sur le page-par-page, tu verras ce détail.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

20 nov. 2005, 15:42

je remplace tout les $pge= .......
par
$pge = isset($_GET['pge']) ? $_GET['pge'] : 0; 

Mammouth du PHP | 19672 Messages

20 nov. 2005, 16:08

Allez, un petit coup de pouce : par rapport au code corrigé plus haut, voici un ajout :
//...
$pge         = isset($_GET['pge'])         ? $_GET['pge']         : 0;
$f_etou      = isset($_GET['f_etou'])      ? $_GET['f_etou']      : "AND";
$nom         = isset($_GET['nom'])         ? $_GET['nom']         : "";
$description = isset($_GET['description']) ? $_GET['description'] : "";

$etou        = $f_etou;
//...
Question que tu n'as pas posée, mais je resteprudent: est-ce que tu comprends l'instruction :
$var = isset($_GET['var']) ? $_GET['var'] : "autre valeur";
:?:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

20 nov. 2005, 16:14

"l'ajout" je l'ai met ou ?
et non je necomprent pas
$var = isset($_GET['var']) ? $_GET['var'] : "autre valeur"; 

Mammouth du PHP | 19672 Messages

20 nov. 2005, 16:22

Sur les quelques lignes que j'ai proposée, il y a une que je n'ai pas modifiée qui est déjà dans ton code:
$etou        = $f_etou; 
Quant à l'instruction que tu ne saisis pas, on appele ça un "Opérateur ternaire".

L'instruction :
$var = isset($_GET['var']) ? $_GET['var'] : "autre valeur";
Aurait pu s'écrire de la manière suivante pour un résultat strictement identique:
isset($_GET['var'])
{
    $var = $_GET['var'];
}
else
{
    $var = "autre valeur";
}
En d'autres termes, si la condition précédant le "?" retourne TRUE, alors on affecte à la variable la valeur suivant immédiatement le "?". Le ":" fait ici office de else et dans le cas où la condition testée retourne FALSE, c'est la valeur suivant ce ":" qui sera alors affectée à la variable $var.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

20 nov. 2005, 16:39

voici ce que donne 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); 
?> 
<p>Ce moteur vous permet de rechercher parmi les <font color="#008080"><b><? echo($nb_tous); ?></b></font> entrées de la table jeux.</p> 
<br> 
<form method="post" action="<?php echo($_SERVER['PHP_SELF']); ?>"> 
  <input type="text" name="nom" size="20">&nbsp;Nom<br> 
  <input type="text" name="description" size="20">&nbsp;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> 
<?php 
$etou = $f_etou; 
//s'il y a eu saisie : 
if($nom != "" || $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) 
    { 
?> 
<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> 
<?php 
    } 
    else 
    { 
        // AFFICHAGE DES RESULTATS PAGE PAR PAGE 
        if ($nbT>1) 
        { 
            $s = "s"; 
        } // utilisé pour éviter une faute d'orthographe dans la ligne en dessous... 
?> 
<p><Il y a <b><?php echo($nbT); ?></b> réponse<?php echo($s); ?></p> 
<br> 
<?php 
        // 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 .""); 
?> 
<table border="2"> 
  <tr> 
    <td>Aperçu</td> 
    <td>Lien</td> 
    <td>Description</td> 
    <td>Note</td> 
    <td>Taille</td> 
    <td>Noter!</td> 
  </tr> 
<?php 
        while($row = mysql_fetch_array($requete2)) 
        { 
            $nom=stripslashes($row[nom]); 
            $description=$row[description]; 
            $mail=$note[note]; 
?> 
  <tr> 
    <td><a href="#" onClick="window.open('http://mazflo007.free.fr/jeux/swf.php?id=<?php echo($row['id']); ?>&categorie=<?php echo($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/<?php echo($row['categorie']); ?>/images/<?php echo($row['id']); ?>.gif widht="100" height="100"></td> 
    <td><center><a href="#" onClick="window.open('http://mazflo007.free.fr/jeux/swf.php?id=<?php echo($row['id']); ?>&categorie=<?php echo($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);"><?php echo($row['nom']); ?></a></center></td> 
    <td><?php echo($row['description']); ?></td> 
    <td><?php echo($row['taille']); ?></td> 
    <td><?php echo(round($row['moyenne'], 2)); ?>/20</td> 
    <td><a href="#"onClick="window.open('http://mazflo007.free.fr/jeux/note.php?id=<?php echo($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> 
  </tr> 
<?php 
        }// fin du while (tant qu'il y a une ligne dans le tableau de résultats renvoyé par $requete2) 
?> 
</table> 
<?php 
        $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 && $pge > 2) 
        { 
?> 
<a href="?pge=0&nom=<?php echo($nom); ?>&description=<?php echo($description); ?>&f_etou=<?php echo($f_etou); ?>"><b>Début</b></a>&nbsp; 
<?php 
        } 
        // AFFICHAGE DU LIEN PRECEDENT SI BESOIN EST (LA PREMIERE PAGES EST 0) 
        if ($pge > 0) 
        { 
            $precedent = $pge - 1; 
?> 
<a href="?pge=<?php echo($precedent); ?>&nom=<?php echo($nom); ?>&description=<?php echo($description); ?>&f_etou=<?php echo($f_etou); ?>"><b><fontcolor='#993366'><</font></b></a>&nbsp; 
<?php 
        } 
        // 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) && $i < ($pge + 3)) 
                { 
                    if($i != $pge) 
                    { 
?> 
<a href="?pge=<?php echo($i); ?>&nom=<?php echo($nom); ?>&description=<?php echo($description); ?>&f_etou=<?php echo($f_etou); ?>"><?php echo($j); ?></a>&nbsp; 
<?php 
                    } 
                    else 
                    { 
?> 
<b><?php echo($j); ?></b>&nbsp; 
<?php 
                    }//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); 
?> 
<a href="?pge=<?php echo($suivant); ?>&nom=<?php echo($nom); ?>&description=<?php echo($description); ?>&f_etou=<?php echo($f_etou); ?>"><b>></b></a>&nbsp; 
<?php 
        } 
        // affichage de la dernière page si nécessaire 
        if($nbpages > 3 && $pge < ($nbpages - 3)) 
        { 
            $fin=$nbpages-1; 
?> 
<a href="?pge=<?php echo($fin); ?>&nom=<?php echo($nom); ?>&description=<?php echo($description); ?>&f_etou=<?php echo($f_etou); ?>"><b>fin</b> (<?php echo($nbpages); ?>)</a> 
<?php 
        } 

    }// fin du else affichage des résultats. 
}// fin du si il y a eu saisie 
else 
{ // s'il n'y a pas eu saisie 
$pge         = isset($_GET['pge'])         ? $_GET['pge']         : 0; 
$f_etou      = isset($_GET['f_etou'])      ? $_GET['f_etou']      : "AND"; 
$nom         = isset($_GET['nom'])         ? $_GET['nom']         : ""; 
$description = isset($_GET['description']) ? $_GET['description'] : ""; 

$etou        = $f_etou; 
?> 
<p>Indiquez vos critères de choix</p> 
<?php 
} 
?> 
</body> 
</html> 
Que faut-il encore modifier ?