Bonjour a tous,
Depuis quelque jours je cherche comment faire pour que le résultat de mes requetes s'affiche sur plusieurs pages.
J'ai bien essayer plusieurs code récuperer un peu pârtout sur la toile mais tous ce que j'arrive a faire c'est limiter le nombre de résultats sans pouvoir affiché le reste sur differentes pages.
Je connai déjà le nombre de résultats retourné en total avec "$nb".
Voila si quelqu'un peut m'aider.
Voici le script en question :
<?php
$Q = $_POST['recherche'];
$_POST['recherche'] = $Q ;
// on donne le lien de la page necessaire pour les paramètres de connexion
require("parametres.php");
// on se connecte au serveur (modif dans les parametres)
$Connexion = mysql_connect($Host, $Login, $Pass) or die ("<br><br><p><center><table width=\"70%\" bgcolor=\"#990000\" border=\"0\" cellspacing=\"0\" cellpadding=\"1\"><tr><td><center><h1>Connexion au serveur <big><u>\"$Host\"</u></big> impossible<br>Veuillez contactez le webmaster pour lui signaler le problème</h1>
</td></tr></table><p></p><p> </p></center></td></tr>");
mysql_select_db("$Database",$Connexion);
// on verifie si le champs de recherche contient un ou plusieurs mots (sauf les mots de moins de 3 lettres)
if(!empty($_POST['recherche'])){
// si le champs est bien rempli on execute le reste du script
// on passe les mots recherchés en minuscules
$Q = strtolower($Q);
// on supprime le superflux, et tout ce qui n'est pas un "mot" de plus de trois lettres
$tab = preg_split('~[\s[:punct:]]~', preg_replace('~\b\S{1,3}\b~', ' ', $Q), -1, PREG_SPLIT_NO_EMPTY);
// on compte le nbr d'élément du tableau.
$nb = count($tab);
//Onverifie si les mots tapez sont valide si ce n'est pas le cas on donne un message d'erreur
if (!$nb) {
echo "<br><br><br><br><br><br><br><span style=\"font-size:18pt;\"><font color=\"#FF0000\">Les mots clés utilisés ne sont pas adaptés.<br><br><br>
Il faut renouveler votre recherche en changeant les mots clés.<br><br><br>
</u></b></font></span><br><p>";
// formulaire pour une seconde recherche
echo
"<center>
<p> </p>
<form method=\"post\" action='$PageResultats'>
<input type=\"text\" maxLength=\"50\" size=\"40\" name=\"recherche\" value=\"Essayez avec d'autres mots clés\">
<input type=\"submit\" name=\"value\" value=\"go !\">
</form>
</center>";
} else {
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// AFFICHAGE DU NOMBRE DE RESULTATS EN FAIT C'EST UNE PREMIERE BOUCLE SANS AFFICHAGE DES REPONSES
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//on prépare la première requête SQL pour la boucle des résultats (modif dans les parametres)
$sql = "SELECT $Champs FROM $Table WHERE $Cles LIKE '%$tab[0]%'"or die(mysql_error()) ;
// on boucle pour integrer tous les mots dans la requête (modif dans les parametres)
for($i = 1; $i < $nb; $i++){
$sql .= "$EtOu $Cles LIKE '%$tab[$i]%'";
}
// on donne l'ordre d'affichage (modif dans les parametres)
$sql .= "ORDER BY $Ordre ASC";
// Si un seul enregistrement est trouvé, on affiche un message au singulier
if ($nb == "1") {
echo "<br><br><br><span style=\"font-size:16pt;\"><font color=\"#009999\">Résultat de votre requète concernant le mot <b><u>\"$Q\"</u></b></font></span><br><p>";
}
// Dans le cas contraire le message est au pluriel...
else {
echo "<br><br><br><span style=\"font-size:16pt;\"><font color=\"#009999\">Résultat de votre requète concernant les mots <b><u>\"$Q\"</u></b></font></span><br><p>";
}
$Res = mysql_db_query($Database, $sql);
$Result = 1;
while($data = mysql_fetch_array($Res)){
$Result++;
}
// On creer une variable en elevant 1 pour avoir un résultat corect
$Resultat = $Result - 1 ;
// Si un seul enregistrement est trouvé, on affiche un message au singulier
if ($Resultat == 0) {
echo "<p><br><br><br><span style=\"font-size:16pt;\"><font color=\"#FF0000\">Aucun résultats pour <b>\"".$_POST['recherche']."\"</font></span></p>";
}else
// Si un seul enregistrement est trouvé, on affiche un message au singulier
if ($Resultat == 1) {
echo "<br><br><span style=\"font-size:16pt;\"><font color=\"#009999\">Résultat: Une réponse</u></b></font></span><p>";
}
else {
// Dans le cas contraire le message est au pluriel...
echo "<br><br><span style=\"font-size:16pt;\"><font color=\"#009999\">Résultats: $Resultat réponses</u></b></font></span><p>";
mysql_free_result($Res);
}
// formulaire pour une seconde recherche
echo
"<center>
<p> </p>
<form method=\"post\" action='$PageResultats'>
<input type=\"text\" maxLength=\"50\" size=\"40\" name=\"recherche\" value=\"Essayez avec d'autres mots clés\">
<input type=\"submit\" name=\"value\" value=\"go !\">
</form>
</center>";
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// AFFICHAGE DES RESULTATS
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// on execute la requête SQL cette fois c'est pour l'affichage des résultats de la requete
$Res = mysql_db_query($Database, $sql);
//boucle de recherche et affichage des résultats de la requete
$Result = 1;
while($data = mysql_fetch_array($Res)){
?>
<p> </p>
<table width="70%" border="0" cellpadding="0" cellspacing="0">
<tr>
<?php
// Ci dessous on attribu en premiere ligne l'image de MPI
// en deuxième ligne c'esst le nombre que retourne la boucle des résultats
// en troisième c'est le titre de la page trouvé incluant le lien URL
echo '<td width="70%"><img src="mpi\images\mpi.jpg" width="30" height="30" border="0">
<font face="Bodoni MT Condensed" size="6" color="#FFFFFF"><b> '.$Result.'. </font>
<a href="'.htmlentities($data["$Entree3"]).'" target="_blank"><font face="Bodoni MT Condensed" size="5" color="#00CC66">'.htmlentities($data["$Entree1"]).'</b></font></a></td>';
?>
</tr>
<tr>
<?php
// Ci dessous correspond a l'affichage de la description de la réponse
echo '<td><font face="garamond" color="#666666" size="5">'.htmlentities($data["$Entree2"]).'</font></td>';
?>
</tr>
</table>
<?php
$Result++;
}
}
// on ferme la connexion
mysql_close($Connexion);
// s'il n'y a pas de mot on donne un message d'erreur avec demande de renouvelement avec d'autre mots clés
}else{
echo "<br><br><br><br><br><br><br><span style=\"font-size:18pt;\"><font color=\"#FF0000\">Les mots clés utilisés ne sont pas adaptés.<br><br><br>
Il faut renouveler votre recherche en changeant les mots clés.<br><br><br>
</u></b></font></span><br><p>";
// formulaire pour une seconde recherche
echo
"<center>
<p> </p>
<form method=\"post\" action='$PageResultats'>
<input type=\"text\" maxLength=\"50\" size=\"40\" name=\"recherche\" value=\"Essayez avec d'autres mots clés\">
<input type=\"submit\" name=\"value\" value=\"go !\">
</form>
</center>";
}
?>Configuration: Windows XP
Internet Explorer 7.0