Problème pagination sur tableau filtré
	
	
		Bonsoir,
J'ai ces deux pages qui me permettent de filtrer ma table à l'aide d'un menu déroulant et m'affiche un tableau.
Le filtrage fonctionne parfaitement bien mais lorsque je clique par exemple sur la page 2 ou 3 (de ma pagination), mon tableau s'efface et m'affiche :
"Undefined index: cat in C:\wamp\www\test\recherche_public.php on line 21"
Je comprends que j'ai un problème avec ma variable $vcat qui est normalement alimenté par mon select nommé cat mais j'ai beau cherché la coquille, je  ne trouve pas.... Si quelqu'un avait une idée.
Merci par avance.
Fichier : recherche
	Citation:
	
		
		
			<form method="GET" enctype="multipart/form-data" action="recherche_public.php">
<select name="cat">
<option>
<option value="1">1
<option value="2">2
</select>
<?php   
 
  //$vcat=$_GET['cat'];
  ?>
  <input type="submit" name="envoyer">
  
</form>
<?php
if(!empty($_GET))  { 
	$vcat=$_GET['cat'];
} 
else 
{
	$vcat=0;
}
  //=========================================
  // includes du fichier fonctions
  //=========================================
 
  require 'fonction_public.php';
  
 
  //=========================================
  // information pour la connection à le DB
  //=========================================
 
  
  
//=========================================
  // initialisation des variables 
  //=========================================
  // on va afficher 5 résultats par page.
  $nombre = 4; 
  // si limite n'existe pas on l'initialise à zéro
  if (!$limite) $limite = 0; 
  // on cherche le nom de la page. 
  $path_parts = pathinfo($_SERVER['PHP_SELF']);
  $page = $path_parts["basename"];
//========================================= 
  // connection à la DB
  //=========================================
include("connexion.php");
//========================================= 
  // requête SQL qui compte le nombre total 
  // d'enregistrements dans la table.
  //=========================================
  
  $select = 'SELECT count(idannonce) FROM tannonce';
  $result = mysql_query($select);
  $row = mysql_fetch_row($result);
  $total = $row[0];
  
  //=========================================
  // vérifier la validité de notre variable 
  // $limite;
  //=========================================
  $verifLimite= verifLimite($limite,$total,$nombre);
  // si la limite passée n'est pas valide on la remet à zéro
  if(!$verifLimite)  {
  $limite = 0;
  }
  //=========================================
  // requête SQL qui ne prend que le nombre 
  // d'enregistrement necessaire à l'affichage.
  //=========================================
  
$select = "select * FROM 
tannonce where categorie='$vcat' ORDER BY titre ASC limit ".$limite.",".$nombre;
  $result = mysql_query($select);
  
  //========================================= 
  // si on a récupéré un resultat on l'affiche.
  //=========================================
 
  
  // début du tableau
   if($total) {
  echo '<table class="tabcentre" align="center"'."\n";
  // première ligne on affiche les titres de colonnes
  echo '<tr>';
  echo '<td align="center" bgcolor="#D6E1FA"><b>Nom</b></td>';
  echo '<td align="center" bgcolor="#D6E1FA"><b>Catégorie</b></td>';
   echo '<td align="center" bgcolor="#D6E1FA"><b>Contenu</b></td>';
  echo '</tr>'."\n";
  // lecture et affichage des résultats sur 2 colonnes 
  while($row = mysql_fetch_array($result)) {
  
  echo '<tr>';
  echo '<td class="vert" bgcolor="#e1ebf4">'.$row['titre'].'</td>';
  echo '<td class="vert" bgcolor="#e1ebf4">'.$row['categorie'].'</td>';
  echo '<td class="vert" bgcolor="#e1ebf4">'.$row['contenu'].'</td>';
  echo '</tr>'."\n";
  }
  echo '</table>'."\n";
  }
  else echo 'Pas d\'enregistrements dans cette table...';
  mysql_free_result($result);
   echo '</form>';
//========================================= 
  // si le nombre d'enregistrement à afficher 
  // est plus grand que $nombre 
  //=========================================
  if($total > $nombre) {
  // affichage des liens vers les pages
  affichePages($nombre,$page,$total);
  
  }
  ?>
			
		
	
 
	Citation:
	
		
		
			<?php
// Fonction qui vérifie la validité de $limite
//récupération de $limite
  
if(isset($_GET['limite'])) 
$limite=$_GET['limite'];    else   $limite=0;
function verifLimite($limite,$total,$nombre) {
// je verifie si limite est un nombre.
if(is_numeric($limite)) {
  
// si $limite est entre 0 et $total, $limite est ok
// sinon $limite n'est pas valide.
if(($limite >=0) && ($limite <= $total) && (($limite%$nombre)==0)) {
  
// j'assigne 1 à $valide si $limite est entre 0 et $max
  $valide = 1;
  } 
  else {
  
// sinon j'assigne 0 à $valide
  $valide = 0;
  }
  }
  
else {
// si $limite n'est pas numérique j'assigne 0 à $valide
  $valide = 0;
  }
  
// je renvois $valide
return $valide;
}
  
// Fonction qui affiche les liens vers les pages
function affichePages($nb,$page,$total) 
{
  $nbpages=ceil($total/$nb);
  $numeroPages = 1;
  $compteurPages = 1;
  $limite  = 0;
  
echo '<table align="center" border = "0" ><tr>'."\n";
  while($numeroPages <= $nbpages) {
echo '<td ><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
  
$limite = $limite + $nb;
$numeroPages = $numeroPages + 1;
$compteurPages = $compteurPages + 1;
if($compteurPages == 10) {
$compteurPages = 1;
echo '<br>'."\n";
  }
  }
  
echo '</tr></table>'."\n";
  }
  
?>