Bonjour a tous,
Voici mon problème je souhaite faire un affichage page par page seulement il apparait qu'une variable ou deux (voir trois ...) ne s'envoie pas sur la page suivante par conséquent ma barre de navigation n'apparait plus et d'apres moi ça viendrait d'une des ces variables :
// on calcul le numéro de la page active
$page_active = floor(($debut/$nb_affichage_par_page)+1);
// on calcul le nombre de pages total que va prendre notre affichage
$nb_pages_total = ceil($nb_total/$nb_affichage_par_page);
je précise que la code n'est pas de moi (c'est surement pour ça que j'ai du mal d'ailleurs)
voici la fonction qui crée la barre :
et la partie de la deuxième page ou j'utilise la barre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111 <?php //BARRE DE NAVIGATION function barre_navigation ($nb_total, $nb_affichage_par_page, $debut, $nb_liens_dans_la_barre) { $barre = ''; // on recherche l'URL courante munie de ses paramètre auxquels on ajoute le paramètre 'debut' qui jouera le role du premier élément de notre LIMIT 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='; } } } // on calcul le numéro de la page active $page_active = floor(($debut/$nb_affichage_par_page)+1); // on calcul le nombre de pages total que va prendre notre affichage $nb_pages_total = ceil($nb_total/$nb_affichage_par_page); // on calcul le premier numero de la barre qui va s'afficher, ainsi que le dernier ($cpt_deb et $cpt_fin) // exemple : 2 3 4 5 6 7 8 9 10 11 << $cpt_deb = 2 et $cpt_fin = 11 if ($nb_liens_dans_la_barre%2==0) { $cpt_deb1 = $page_active - ($nb_liens_dans_la_barre/2)+1; $cpt_fin1 = $page_active + ($nb_liens_dans_la_barre/2); } else { $cpt_deb1 = $page_active - floor(($nb_liens_dans_la_barre/2)); $cpt_fin1 = $page_active + floor(($nb_liens_dans_la_barre/2)); } if ($cpt_deb1 <= 1) { $cpt_deb = 1; $cpt_fin = $nb_liens_dans_la_barre; } elseif ($cpt_deb1>1 && $cpt_fin1<$nb_pages_total) { $cpt_deb = $cpt_deb1; $cpt_fin = $cpt_fin1; } else { $cpt_deb = ($nb_pages_total-$nb_liens_dans_la_barre)+1; $cpt_fin = $nb_pages_total; } if ($nb_pages_total <= $nb_liens_dans_la_barre) { $cpt_deb=1; $cpt_fin=$nb_pages_total; } // si le premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la premiere page if ($cpt_deb != 1) { $cible = $query.(0); $lien = '<A HREF="'.$cible.'"><<</A> '; } else { $lien=''; } $barre .= $lien; // on affiche tous les liens de notre barre, tout en vérifiant de ne pas mettre de lien pour la page active for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++) { if ($cpt == $page_active) { if ($cpt == $nb_pages_total) { $barre .= $cpt; } else { $barre .= $cpt.' - '; } } else { if ($cpt == $cpt_fin) { $barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page); $barre .= "'>".$cpt."</A>"; } else { $barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page); $barre .= "'>".$cpt."</A> - "; } } } $fin = ($nb_total - ($nb_total % $nb_affichage_par_page)); if (($nb_total % $nb_affichage_par_page) == 0) { $fin = $fin - $nb_affichage_par_page; } // si $cpt_fin ne vaut pas la dernière page de la barre de navigation, on affiche un >> qui sera un lien vers la dernière page de navigation if ($cpt_fin != $nb_pages_total) { $cible = $query.$fin; $lien = ' <A HREF="'.$cible.'">>></A>'; } else { $lien=''; } $barre .= $lien; return $barre; } ?>
et éventuellement si cela vous est utile les requêtes faite sur la base pour l'affichage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php print"<br /><a href=\"javascript:void(0);\" onclick=\"validAction('Delete this banner?','".$_SERVER["PHP_SELF"]."?delete_baId=".$row["baId"]."&delete_baName=".$row["baName"]."');\">delete banner</a><br />"; $tmp=explode("x",$row["baImgSize"]); print"<textarea rows=\"5\" style=\"padding:5px;margin-top:5px;width:620px;background-color:#FEFAEE;border:1px solid #EBE4DA;\"><a href="".$linking_code."" target="_blank"> <img src="http://".$SubwwwContent.".virtuagirlhd.com/customdata/banner/".$row["baName"]."" width="".$tmp[0]."" height="".$tmp[1]."" border="0" /> </a></textarea><br /><br /><br />"; } print $nb_total." ".$nb_affichage_par_page." ".$GET_['debut']." ".$page_active."<br>"; echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 3).'</span>'; ?>
voila tout j'espère que vous pourrez m'aider parce que la pour le coup je suis vraiment bloqué
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 $query1="SELECT COUNT(*) FROM Banner WHERE bausId='0'"; $query="SELECT * FROM Banner WHERE bausId='0'"; if(!isset($moId)) $moId="0"; if($moId=="-1") { $query1.=" AND bamoId!='0'"; $query.=" AND bamoId!='0'"; } else if($moId!="0") { $query1.=" AND bamoId='".$moId."'"; $query.=" AND bamoId='".$moId."'"; } $query1.=" ORDER BY baId DESC LIMIT ".$_GET['debut'].",".$nb_affichage_par_page.""; $query.=" ORDER BY baId DESC LIMIT ".$_GET['debut'].",".$nb_affichage_par_page.""; $req1=Db_Query($query1,$db); $req=Db_Query($query,$db);
merci d'avance
Partager