code d'affichage page par page, 2 variables

WRInaute impliqué
Bonsoir,

j'ai besoin de rentrer la variable ordre dans un
code d'affichage page par page,

*wzw.site.com/visite/mode?debut=0&ordre=DESC

jusqu'a la variable debut cela fonctionne mais apres,
a chaque fois, je suis a cote si vous pouvez m'aider
a comprendre:
// on prépare l'URL de la page qui va être visitée
if ($_SERVER['QUERY_STRING'] == "") {
$query = $_SERVER['PHP_SELF'].'?debut=';
}
else {
$tableau = explode ("debut=", $_SERVER['QUERY_STRING']);
$nb_element = count ($tableau);
if ($nb_element == 1) {
$query = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&debut=';
}
else {
if ($tableau[0] == "") {
$query = $_SERVER['PHP_SELF'].'?debut=';
}
else {
$query = $_SERVER['PHP_SELF'].'?'.$tableau[0].'debut=';
}
}
}

merci
ludo
 
WRInaute impliqué
oxman a dit:
Heu c'est quoi ton affaire ?
Pourquoi tu ne modifies pas l'URL qui amène à ta page ?

Le prbmle c'est que je ne sais pas ou je dois faire la modif
et comment car si c'est dans la prepa ci-dessus, je fais erreur
sur erreur, ou est-ce dans la suite du code

// début <<
if ($debut >= $nb_affichage_par_page) {
// si $debut, qui correspond donc au x de notre LIMIT
$cible = $query.(0);
$lien = '<A HREF="'.$cible.'">&lt;&lt;</A>&nbsp;';
}
else {
// sinon on affiche rien
$lien = '';
}
// on rappelle que la notation $barre .= $lien est equivalente à : $barre = $barre.$lien (une simple concaténation)
$barre .= $lien;

// précédent <
if ($debut >= $nb_affichage_par_page) {
$cible = $query.($debut-$nb_affichage_par_page);
$lien = '&nbsp;<A HREF="'.$cible.'">&lt; Précédent</A>&nbsp;';
}
else {
// sinon, cela veut dire que l'on est sur la première page et par conséquent on affiche rien
$lien = '';
}
$barre .= $lien;

// pages 1 . 2 . 3 . 4 .
if ($debut >= ($nb_liens_dans_la_barre*$nb_affichage_par_page)) {
// on initialise deux compteurs
$cpt_fin = ($debut / $nb_affichage_par_page) + 1;
$cpt_deb = $cpt_fin - $nb_liens_dans_la_barre + 1;
}
else {
$cpt_deb = 1;
$cpt_fin = (int)($nb_total / $nb_affichage_par_page);
if (($nb_total % $nb_affichage_par_page) != 0) {
$cpt_fin++;
}
if ($cpt_fin > $nb_liens_dans_la_barre) {
$cpt_fin = $nb_liens_dans_la_barre;
}
}

for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++) {
// on affiche tous les numéros de la barre de navigation, le lien en cours de consultation
if ($cpt == $cpt_fin) {
if ($cpt == ($debut / $nb_affichage_par_page) + 1) {
$barre .= "&nbsp;".$cpt."&nbsp;";
}
else {
$barre .= "&nbsp;<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A> ";
}
}
else {
if ($cpt == ($debut / $nb_affichage_par_page) + 1) {
$barre .= "&nbsp;".$cpt."&nbsp;";
}
else {
$barre .= "&nbsp;<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A> ";
}
}
}

// suivant >
if ($debut + $nb_affichage_par_page < $nb_total) {
$cible = $query.($debut+$nb_affichage_par_page);
$lien = '&nbsp;<A HREF="'.$cible.'">Suivant &gt;</A>';
}
else {
$lien = '';
}
$barre .= $lien;

// fin >>
$fin = ($nb_total - ($nb_total % $nb_affichage_par_page));
if (($nb_total % $nb_affichage_par_page) == 0) {
$fin = $fin - $nb_affichage_par_page;
}
if ($fin != $debut) {
// si $fin est différent de $debut, on affiche donc un lien >> permettant d'accéder directement à la dernière page
$cible = $query.$fin;
$lien = '&nbsp;<A HREF="'.$cible.'">&gt;&gt;</A>';
}
else {
$lien = '<font color=#A9A9A9><b>Suivant &gt; &gt;&gt;</b></font>';
}
$barre .= $lien;

return ($barre);
}
 
WRInaute discret
C'est super bizarre cette façon de procéder, ça vient d'où ?

Quoi qu'il en soit fait $cible .= "&ordre=DESC";
 
WRInaute impliqué
oxman a dit:
C'est super bizarre cette façon de procéder, ça vient d'où ?

Quoi qu'il en soit fait $cible .= "&ordre=DESC";

Autant que je me souvienne
*http://www.lephpfacile.com/, je cherche un code plus claire et valide
su tu en connais un , en tou cas je teste !
 
WRInaute impliqué
oxman a dit:
Bah c'est surtout la méthode pour gérer les liens qui me perturbe =')

Donc pour finir ce code, je fais

$barre .= "&ordre=$_GET[ordre]";
$cible .= "&ordre=$_GET[ordre]";

car je recupere la variable dans l'url, et cela fonctionne...
Mais est-il correct d'éviter les guillemets simples $_GET['ordre'] car dans ce cas cela ne passe plus.

ou alors je fais :

$order=$_GET['ordre']
$barre .= "&ordre=$order";
$cible .= "&ordre=$order";

mais cela ne passe pas

ludo
 
Discussions similaires
Haut