par
sadeq » 16 mars 2009, 17:50
...... au click de la page suivante....!
Le click sur le lien "Page Suivante" doit transmettre tous les paramètres exigés par ton code.
Voici une suggestion de solution :
// La variable $recherche
$recherche = isset($_GET['recherche']) ? $_GET['recherche'] : "";
// La variable $debut
$debut = isset($_GET['debut']) ? $_GET['debut'] : 0;
// nombre de lignes par page
$nb_affichage_par_page = 15;
// Préparation de la requête avec le LIMIT
$sql = "SELECT title, city FROM jos_restaurante WHERE city LIKE '" . $recherche . "%' ORDER BY city ASC LIMIT " . $debut . "," . $nb_affichage_par_page;
// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// Construction du lien "page suivante"
$suivant = $debut + $nb_affichage_par_page;
echo '<a href="?recherche=' . $recherche . '&debut=' . $suivant . '" >Page Suivante</a>';
// Construction du lien "page précédente"
$precedent = $debut - $nb_affichage_par_page;
if ($precedent <0) $precedent = 0; // Correction du début si négatif
echo '<a href="?recherche=' . $recherche . '&debut=' . $precedent. '" >Page Précédente</a>';
// Affichage des données d'une page
....
Ou alors si tu utilise des boutons de formulaire, tu dois écrire le formulaire comme ça:
// La variable $recherche
$recherche = isset($_GET['recherche']) ? $_GET['recherche'] : "";
// La variable $debut
$debut = isset($_GET['debut']) ? $_GET['debut'] : 0;
// nombre de lignes par page
$nb_affichage_par_page = 15;
// Préparation de la requête avec le LIMIT
$sql = "SELECT title, city FROM jos_restaurante WHERE city LIKE '" . $recherche . "%' ORDER BY city ASC LIMIT " . $debut . "," . $nb_affichage_par_page;
// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// Construction du lien "page suivante"
$suivant = $debut + $nb_affichage_par_page;
// Construction du lien "page précédente"
$precedent = $debut - $nb_affichage_par_page;
if ($precedent <0) $precedent = 0; // Correction du début si négatif
// Affichage du formulaire de saisie du critère recherché
echo '<form action="GET"><p>
Recherche <input type="text" name="recherche" value="' . $recherche . '" />
<input type="submit" value="Rechercher" />
</p></form>';
// Affichage du bouton page suivante
echo '<form action="GET"><p>
<input type="hidden" name="recherche" value="' . $recherche . '" />
<input type="hidden" name="debut" value="' . $suivant . '" />
<input type="submit" value="Page Suivante" />
</p></form>';
// Affichage du bouton page précédente
echo '<form action="GET"><p>
<input type="hidden" name="recherche" value="' . $recherche . '" />
<input type="hidden" name="debut" value="' . $precedent. '" />
<input type="submit" value="Page Précédente" />
</p></form>';
// Affichage des données d'une page
....
Les champs de type 'hidden' (caché) rappellent les valeurs de paramètres à renvoyer systématiquement quand un bouton submit est activé sur un formulaire.
Dans cet exemple, on a un formulaire pour chaque bouton "Page Suivante" ou "Page Précédente" qui rappelle les 2 paramètres "recherche" et "debut".
Le paramètre "recherche" reste constant quelque soit la pagination, par contre le paramètre "debut" va changer de valeur selon le recalcule des variables $suivant et $precedent.
Donc, dans tous les cas, on aura, une valeur
$recherche, une valeur
$suivant attachée au bouton "Page Suivante" et une valeur
$precedent attachée au bouton "Page Précédente" .
[quote="chanteur06"]...... au click de la page suivante....![/quote]
Le click sur le lien "Page Suivante" doit transmettre tous les paramètres exigés par ton code.
Voici une suggestion de solution :
[php]
// La variable $recherche
$recherche = isset($_GET['recherche']) ? $_GET['recherche'] : "";
// La variable $debut
$debut = isset($_GET['debut']) ? $_GET['debut'] : 0;
// nombre de lignes par page
$nb_affichage_par_page = 15;
// Préparation de la requête avec le LIMIT
$sql = "SELECT title, city FROM jos_restaurante WHERE city LIKE '" . $recherche . "%' ORDER BY city ASC LIMIT " . $debut . "," . $nb_affichage_par_page;
// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// Construction du lien "page suivante"
$suivant = $debut + $nb_affichage_par_page;
echo '<a href="?recherche=' . $recherche . '&debut=' . $suivant . '" >Page Suivante</a>';
// Construction du lien "page précédente"
$precedent = $debut - $nb_affichage_par_page;
if ($precedent <0) $precedent = 0; // Correction du début si négatif
echo '<a href="?recherche=' . $recherche . '&debut=' . $precedent. '" >Page Précédente</a>';
// Affichage des données d'une page
....
[/php]
Ou alors si tu utilise des boutons de formulaire, tu dois écrire le formulaire comme ça:
[php]
// La variable $recherche
$recherche = isset($_GET['recherche']) ? $_GET['recherche'] : "";
// La variable $debut
$debut = isset($_GET['debut']) ? $_GET['debut'] : 0;
// nombre de lignes par page
$nb_affichage_par_page = 15;
// Préparation de la requête avec le LIMIT
$sql = "SELECT title, city FROM jos_restaurante WHERE city LIKE '" . $recherche . "%' ORDER BY city ASC LIMIT " . $debut . "," . $nb_affichage_par_page;
// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// Construction du lien "page suivante"
$suivant = $debut + $nb_affichage_par_page;
// Construction du lien "page précédente"
$precedent = $debut - $nb_affichage_par_page;
if ($precedent <0) $precedent = 0; // Correction du début si négatif
// Affichage du formulaire de saisie du critère recherché
echo '<form action="GET"><p>
Recherche <input type="text" name="recherche" value="' . $recherche . '" />
<input type="submit" value="Rechercher" />
</p></form>';
// Affichage du bouton page suivante
echo '<form action="GET"><p>
<input type="hidden" name="recherche" value="' . $recherche . '" />
<input type="hidden" name="debut" value="' . $suivant . '" />
<input type="submit" value="Page Suivante" />
</p></form>';
// Affichage du bouton page précédente
echo '<form action="GET"><p>
<input type="hidden" name="recherche" value="' . $recherche . '" />
<input type="hidden" name="debut" value="' . $precedent. '" />
<input type="submit" value="Page Précédente" />
</p></form>';
// Affichage des données d'une page
....
[/php]
Les champs de type 'hidden' (caché) rappellent les valeurs de paramètres à renvoyer systématiquement quand un bouton submit est activé sur un formulaire.
Dans cet exemple, on a un formulaire pour chaque bouton "Page Suivante" ou "Page Précédente" qui rappelle les 2 paramètres "recherche" et "debut".
Le paramètre "recherche" reste constant quelque soit la pagination, par contre le paramètre "debut" va changer de valeur selon le recalcule des variables $suivant et $precedent.
Donc, dans tous les cas, on aura, une valeur [b]$recherche[/b], une valeur [b]$suivant[/b] attachée au bouton "Page Suivante" et une valeur [b]$precedent [/b]attachée au bouton "Page Précédente" .