Petit probleme dans mon affichage page par page
Bonjour,
Alors voila j'ai suivi le tuto dans la rubrique "Comment faire?" pour afficher les données page par page, cela fonctionne tres bien mais dans la barre de navigation << < 1 > >> le "<" renvoi a "http://www.host.com/monsite/" au lieu de la page précédente...
et aussi, meme si il y a 5 page, je n'ai que le 1 dans les numero, donc au lieu d'avoir " << < 1 2 3 4 5 > >>" et ben j'ai "<< < 1 > >>"....
Ou puis-je regler le probleme, j'ai essayé mais tout le code est correct...
Ou dois je chercher dans le code?
Car il est long et je ne c pas si j'ai cherché au bon endroit...
Merci bcp
++
Styleman
++ Styleman
Faudrait que tu nous montre ton code, parce que là, je ne vois pas...
Surement une erreur dans le compte du nombre de truc à afficher, mais ou....
ok, mais tu le sais surement, il est long lol...
<?
$rep = 'commentaires/';
require_once($rep.'config/fonctions.lib.php');
function barre_navigation ($nb_total, $nb_affichage_par_page,$debut) {
$nb_liens_dans_la_barre = 10;
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=';
}
}
}
if ($debut >= $nb_affichage_par_page) {
$cible = $query.(0);
$lien = '<A HREF="'.$cible.'"><<</A> ';
}
else {
$lien = '';
}
$barre .= $lien;
if ($debut >= $nb_affichage_par_page) {
$cible = $query.($debut-$nb_affichage_par_page);
$lien = ' <A HREF="'.$clible.'"><</A> ';
}
else {
$lien = '';
}
$barre .= $lien;
if ($debut >= ($nb_liens_dans_la_barre*$nb_affichage_par_page))
{
$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++) {
if ($cpt == $cpt_fin) {
if ($cpt == ($debut / $nb_affichage_par_page) + 1) {
$barre .= " ".$cpt." ";
}
else {
$barre .= " <A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A> ";
}
}
else {
if ($cpt == ($debut / $nb_affichage_par_page) + 1) {
$barre .= " ".$cpt." - ";
}
else {
$barre .= "$nbsp;<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A> - ";
}
}
}
if ($debut + $nb_affichage_par_page < $nb_total) {
$cible = $query.($debut+$nb_affichage_par_page);
$lien = ' <A HREF="'.$cible.'">></A> ';
}
else {
$lien = '';
}
$barre .= $lien;
$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) {
$cible = $query.$fin;
$lien = ' <A HREF="'.$cible.'">>></A>';
}
else {
$lien = '';
}
$barre .= $lien;
return ($barre);
}
$db = mysql_connect('*****', '****', '****');
mysql_select_db('***',$db);
$nb_affichage_par_page = 25;
if (empty($id)) {
$sql="SELECT count(*) FROM news_tbl";
$result = mysql_query($sql);
$nb_total = mysql_fetch_array($result);
if (($nb_total = $nb_total[0]) == 0) {
echo 'Aucune reponse trouvée';
}
else {
if (!isset($debut)) $debut = 0;
$sql = 'SELECT * FROM news_tbl ORDER BY id DESC LIMIT '.$debut.','.$nb_affichage_par_page;
$req = mysql_query($sql);
echo "<b>Toutes les news:</b><br><br>";
while ($ligne = mysql_fetch_array($req)){
echo "<img src=images/bouton2.gif> <a href=\"index.php?rub=2&id=".$ligne[0]."\">".$ligne['titre']."</a><br>";
}
$barre = barre_navigation($nb_total, $nb_affichage_par_page, $debut);
echo '<b>'.$barre.'</b>';
}
}
else {
$sql="SELECT * FROM news_tbl WHERE id = $id";
$result = mysql_query($sql);
$NbRep = mysql_num_rows($result);
if ($NbRep !=0) {
$ligne = mysql_fetch_array($result);
$message = $ligne[texte];
$texte = nl2br($message);
echo "<b>News: ".$ligne[titre]."</b><br><br>";
nb_commentaires('news '.$id.'');
lien_commentaires(' Commentaires','news '.$id.'');
echo "<br><br>Postée le ".$ligne[date]." a ".$ligne[heure]."<br><br>";
echo "<table border=0>";
echo "<tr><td>";
echo "$texte<br><br>";
echo "</td></tr>";
echo "<tr><td>";
echo "<div align=right>News postée par:<b>
<a href=index.php?rub=5&id=".$ligne[id_auteur].">".$ligne[pseudo]."</a></b></div><br>";
echo "</td></tr>";
echo "</table>";
nb_commentaires('news '.$id.'');
lien_commentaires(' Commentaires','news '.$id.'');
}
else {
echo "Il n'y a pas de news ayant cet id";
mysql_close();
}
}
?>
++ Styleman
Merci bcp ;o)
++ Styleman
Tu ne voudrais pas faire un wall plutot ?
Parce que la, c'est limite illisible :/
le 24/09/2003 à 19:02
i M@N
One Love, One Heart, One Unity.
Styleman, peux tu m'assurer que tu as recopie entierement la fct barre_navigation et tu n'y as pas change le moindre caractere ?
Si je ne l'ai pas entierement recopiée, je ne vois pas ou, je cherche encore...
++ Styleman
Je viens de tout relire...et franchement je ne vois pas
Je suis peut etre bigleu mais bon, j'ai bien regardé pourtant...
++ Styleman
S'il vous plait, help!
++ Styleman