Comment paginer les données récupérées avec un $_GET passé en paramètre ?
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 !
Ben il te faut placer le $_GET['ananas'] dans tes liens de pagination.
Sinon, faire une requête comme tu le fais est dangereux, utilise la fonction
mysql_real_escape_string.
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 !
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']).'"';
?>
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 !
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: