Comment paginer les données récupérées avec un $_GET passé en paramètre ?

Répondre
coringan
le 15/03/2010 à 06:44
coringan
Je récupère la variable passée en paramètre de la manière suivante :

<?php 
$sql = 'SELECT fruit FROM panier WHERE nom = "'.$_GET['ananas'].'"';
?>


Lorsque que j'affiche ces données avec la pagination, tout se passe bien à la 1ère page mais dès que je clique sur suivant, $_GET['ananas'] se désintègre et je n'est plus rien.

Quelqu'un a-t-il un remède efficace ?
Je fais ce qui me plaît, et ce que je fais me plaît !
coringan
le 15/03/2010 à 20:52
coringan
Je n'arrive pas à faire le moindre lien entre ces boutons de navigation
<?php
if ($NumRows > NB_PAR_PAGE)
{
if ($page > 1)
{echo '<a href="'.basename(__FILE__).'?page='.($page - 1).'"><img src="GaucheActif.png" width="18" height="18" border="0"></a>';}
else echo '<img src="GaucheNonActif.png" width="18" height="18" border="0">';

if ($page < $derniere_page)
{echo '<a href="'.basename(__FILE__).'?page='.($page + 1).'"><img src="DroitActif.png" width="18" height="18" border="0"></a>';}
else echo '<img src="DroitNonActif.png" width="18" height="18" border="0">';
}
?>


ma requête
<?php
$sql = 'SELECT fruit FROM panier WHERE nom = "'.$_GET['ananas'].'"';
?>


et
mysql_real_escape_string.
Je fais ce qui me plaît, et ce que je fais me plaît !
Amery
le 16/03/2010 à 08:58
Amery
Il sutffit de rajouter dans les liens existants la valeur de ta variable $ananas pour la faire passer de page en page:

<?php
if ($NumRows > NB_PAR_PAGE)
{
if ($page > 1)
{echo '<a href="'.basename(__FILE__).'?page='.($page - 1).'&ananas=valeur"><img src="GaucheActif.png" width="18" height="18" border="0"></a>';}
else echo '<img src="GaucheNonActif.png" width="18" height="18" border="0">';

if ($page < $derniere_page)
{echo '<a href="'.basename(__FILE__).'?page='.($page + 1).'&ananas=valeur"><img src="DroitActif.png" width="18" height="18" border="0"></a>';}
else echo '<img src="DroitNonActif.png" width="18" height="18" border="0">';
}
?>


Pour mysql_real_escape_string sert à éviter les injections sql en protégeant les caractères spéciaux. Un petit lien qui explique ça très bien : http://www.ghostsinthestack.org/article-8-les-bases-des-injections-sql.html.

Donc, ta requête devient :
<?php 
$sql = 'SELECT fruit FROM panier WHERE nom = "'.mysql_real_escape_string($_GET['ananas']).'"';
?>
coringan
le 16/03/2010 à 15:40
coringan
Merci Amery,

J’ai bricolé ça avec une page de transition et un cookie et ça marchait très bien mais cette méthode était vraiment à la limite de la bêtise.
Le véritable procédé est celui que vous m’avez proposé, il fonctionne partout sans faille pour le moment.


<?php 
$Fruit = mysql_real_escape_string($_GET['ananas']);
?>


<?php
$sql = 'SELECT fruit FROM panier WHERE nom = "'.$Fruit.'"';
?>


et enfin pour passer de page en page
<?php
&ananas='.$Fruit.'
?>
Je fais ce qui me plaît, et ce que je fais me plaît !
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours