Acquisition des résultats d'un formulaire dans la pagination
Posté : 12 juil. 2005, 19:06
Bonjour,
j'essaie de créer un dico en ligne et j'ai la base :
Le formulaire où l'on écrit son mot, on envoie et on affiche le résultat via la requête qui cherche dans la base.
Jusqu'ici tout va bien
J'ai voulu faire une pagination et j'ai réussi à l'aide d'un des forums ici à avoir :
lance la requête, limite le résultat voulu, affiche le bouton suivant !
Jusqu'ici tout va bien
Là où ça ne va plus :
Si je clique sur suivant, les boutons suivants/précédents ne s'affichent pas, pas plus que les résultats...
J'ai : base.php?page=1 dans la barre de navigation mais il n'a pas pris en compte le mot recherché...
Je ne vois pas comment faire ! Je crois qu'il me manque l'acquisition du mot cherché quelque part...
Voilà le code de base (sans la mise en page, etc) :
j'essaie de créer un dico en ligne et j'ai la base :
Le formulaire où l'on écrit son mot, on envoie et on affiche le résultat via la requête qui cherche dans la base.
Jusqu'ici tout va bien
J'ai voulu faire une pagination et j'ai réussi à l'aide d'un des forums ici à avoir :
lance la requête, limite le résultat voulu, affiche le bouton suivant !
Jusqu'ici tout va bien
Là où ça ne va plus :
Si je clique sur suivant, les boutons suivants/précédents ne s'affichent pas, pas plus que les résultats...
J'ai : base.php?page=1 dans la barre de navigation mais il n'a pas pris en compte le mot recherché...
Je ne vois pas comment faire ! Je crois qu'il me manque l'acquisition du mot cherché quelque part...
Voilà le code de base (sans la mise en page, etc) :
Code : Tout sélectionner
// définit l'affichage pour les caractères spéciaux
<?php
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<meta http-equiv="content-type" content="text/html" charset="UTF-8" />
<head>
//inclu la connextion mysql et la fonction colorant le mot cherché
<?php
include( "mysql.inc.php" );
require( "fonctions.inc.php" );
//vérifie qu'il y a bien un mot cherché
if( isset( $_POST["recherche"] ) ) $recherche = $_POST["recherche"];
else $recherche = 0;
if( isset( $_POST["critere"] ) ) $critere = $_POST["critere"];
?>
</head>
// formulaire dans lequel on tape le mot cherché
<body>
<form name="annuaire" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<input type="text" name="critere" value="Votre recherche ici. <?php if(!$critere) echo stripslashes( $critere ); ?>" size="17" onFocus='document.forms["annuaire"].elements["critere"].value =""'/>
<input type="submit" name="envoyer" value="Traduire"/><input type="hidden" name="recherche" value="1"/></form>
</body>
// si le mot existe on effectue une première recherche totale et avec limite
<?Php
if( $recherche==1 && !empty( $critere) )
{
$requete = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%'";
$execution = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" );
$total = @mysql_num_rows( $execution ) ;
$na = 5;
if( $total> 0 )
{
$nb_pages = ceil($total/$na);
$page = isset($_GET['page']) ? $_GET['page'] : 0;
$depart = $page * $na;
$requete2 = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%' limit ".$depart.",".$na;
$execution2 = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" );
$totallimite = @mysql_num_rows( $execution2 ) ;
?>
Résultat : <?php echo $total; ?><br />
Mot recherché :<?php echo colorise_query($critere,$critere,$critere); ?><br />
<?php
while( $un_mot = mysql_fetch_array( $execution2 ))
{
?>
<?php echo colorise_query( $un_mot["fr"], $critere,"stabylo" ); ?><br />
<?php echo $un_mot["jap"] . " " . $un_mot["pro"]; ?><br />
<?php echo $un_mot["com"]; ?><br />
<?php
}
mysql_free_result( $execution2 );
}
// si rien dans 1ere recherche, cherche dans l'autre requete
else
{
$requete = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ) . "%'";
$execution = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" );
$total = @mysql_num_rows( $execution );
$na = 5;
if( $total > 0 )
{
$nb_pages = ceil($total/$na);
$page = isset($_GET['page']) ? $_GET['page'] : 0;
$depart = $page * $na;
$requete2 = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ) . "%' limit ".$depart.",".$na;
$execution2 = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" );
$totallimite = @mysql_num_rows( $execution2 ) ;
?>
<br />
Résultat : <?php echo $total; ?><br />
Mot recherché : <?php echo colorise_query( $critere,$critere,$critere ); ?><br />
<?php
while( $un_mot = mysql_fetch_array( $execution2 ) )
{
?>
<?php echo colorise_query( $un_mot["jap"],$critere,"stabylo" );?>
<?php echo $un_mot["fr"]; ?>
<?php echo $un_mot["com"]; ?><br />
<?php
}
mysql_free_result( $execution2 );
}
// si la deuxieme requete donne rien, pas de resultat
else
echo "Aucune traduction disponible pour le moment.<br />\n";
}
// liens precedents et suivants
if($page > 0)
{
?>
<a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page - 1))?>">Page précédente</a>
<?php
}
if($page < $nb_pages)
{
?>
<a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page + 1))?>">Page suivante</a>
<?php
}
}
?>
</body>
</html>
<?Php
mysql_close();
?>