bonjour à tous,
voilà, j'ai un petit moteur de recherche (fonctionnel) auquel j'ai greffé un affichage par page (fonctionnel si utilisé seul)...alors mon moteur cherche et trouve (heureusement) mais quand je clique sur la seconde page du (par page) rien ne s'affiche et j'ai une page blanche!!!
question: d'où vient cet erreur? merci.
voici le code...rassurez-vous il n'est pas long :-/

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?PHP
 
if(isset($_POST['mots']) && $_POST['mots'] != NULL){ // on vérifie d'abord l'existence du POST et aussi si la requete n'est pas vide.
 
	mysql_connect('host','root','pass');
  mysql_select_db('base'); // on se connecte à MySQL. Je vous laisse remplacer les différentes informations pour adapter ce code à votre site.
 
$mots = htmlspecialchars($_POST['mots']); // on crée une variable $mots pour faciliter l'écriture de la requête SQL, mais aussi pour empêcher les éventuels malins qui utiliseraient du PHP ou du JS, avec la fonction htmlspecialchars().
 
$req = mysql_query("SELECT * FROM moteur WHERE nom LIKE '%$mots%' ORDER BY code DESC") or die (mysql_error()); // la requête, que vous devez maintenant comprendre ;)
$nbArt = mysql_num_rows($req); // on utilise la fonction mysql_num_rows pour compter les résultats pour vérifier par après
 
if($nbArt != 0) // si le nombre de résultats est supérieur à 0, on continue
{
// maintenant, on va afficher les résultats et la page qui les donne ainsi que leur nombre, avec un peu de code HTML pour faciliter la tâche.
?>
<h3>Résultats de votre recherche.</h3>
<p>Nous avons trouvé <? echo $nbArt; // on affiche le nombre de résultats 
if($nbArt > 1) { 
	echo ' résultats '; 
	} 
	else { 
		echo ' résultat'; 
		} // on vérifie le nombre de résultats pour orthographier correctement. 
?>
dans notre base de données. Voici les résultats que nous avons trouvées :<br/>
<br/>
<?
 
affiche($nbArt,$mots);
 
echo "<br><a href=\"rechercher.php\"><b>Faire une nouvelle recherche</b></a></p>";
 
} // Fini d'afficher les résultats ! Maintenant, nous allons afficher l'éventuelle erreur en cas d'échec de recherche et le formulaire.
else { // de nouveau, un peu de HTML
?>
<h3>Pas de résultats</h3>
<p>Nous n'avons trouvé aucun résultat pour votre requête "<? echo $_POST['mots']; ?>". <a href="rechercher.php">Réessayez</a> avec autre chose.</p>
<?
}// Fini d'afficher l'erreur ^^
mysql_close(); // on ferme mysql, on n'en a plus besoin
}
?>
 
<p>Tapez une requête pour réaliser une recherche.</p>
 <form action="rechercher.php" method="Post">
<input type="text" name="mots" size="10">
<input type="submit" value="Ok">
</form>
 
<?
function affiche($nombrearticle,$motClef){        
  $perPage=10;//nombre de pages
  $nbPage=ceil($nombrearticle/$perPage);//arrondir à la valeur supérieure  
 
  //vérifier si la variable 'p' existe ou non!
  if(isset($_GET['p'])&& $_GET['p'] > 0 && $_GET['p'] <= $nbPage){
  $cPage=$_GET['p'];
  }
  else {
  	$cPage=1;
  }
 
  $req=mysql_query ("SELECT * FROM moteur WHERE nom LIKE '%$motClef%' ORDER BY code DESC LIMIT ".(($cPage-1)*$perPage).",$perPage") or die (mysql_error());
 
  while($data=mysql_fetch_array($req)){
  echo "{$data['nom']}";
  echo $data['email']."<br>";
  echo $data['commentaire'];
  echo	"<hr>";
  } 
 
  //afficher les liens de page
  for($i=1;$i<=$nbPage;$i++){
  	if($i==$cPage){
  		echo " $i /";//lien inactif
  	}
  	else{
  	echo " <a href=\"rechercher.php?p=$i&mots=$motClef\">$i</a> / " ;
  	//c'est un lien actif
  }
  }
}//fin function
?>
et merci d'avance ;-)