Petit probleme dans mon affichage page par page

Répondre
Styleman
le 24/09/2003 à 15:00
Styleman
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... smiley

Merci bcp

++
Styleman
++ Styleman
LA GLOBULE
le 24/09/2003 à 15:12
LA GLOBULE
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....
Styleman
le 24/09/2003 à 17:01
Styleman
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.'">&lt;&lt;</A>&nbsp;';
}
else {
$lien = '';
}
$barre .= $lien;

if ($debut >= $nb_affichage_par_page) {
$cible = $query.($debut-$nb_affichage_par_page);
$lien = '&nbsp;<A HREF="'.$clible.'">&lt;</A>&nbsp;';
}
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 .= "&nbsp;".$cpt."&nbsp; ";
}
else {
$barre .= "&nbsp;<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A>&nbsp;";
}
}
else {
if ($cpt == ($debut / $nb_affichage_par_page) + 1) {
$barre .= "&nbsp;".$cpt."&nbsp;-&nbsp;";
}
else {
$barre .= "$nbsp;<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A>&nbsp;-&nbsp;";
}
}
}
if ($debut + $nb_affichage_par_page < $nb_total) {
$cible = $query.($debut+$nb_affichage_par_page);
$lien = '&nbsp;<A HREF="'.$cible.'">&gt;</A>&nbsp;';
}
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 = '&nbsp;<A HREF="'.$cible.'">&gt;&gt;</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
LA GLOBULE
le 24/09/2003 à 18:10
LA GLOBULE
Tu ne voudrais pas faire un wall plutot ?
Parce que la, c'est limite illisible :/
LA GLOBULE
le 24/09/2003 à 19:16
LA GLOBULE
Styleman, peux tu m'assurer que tu as recopie entierement la fct barre_navigation et tu n'y as pas change le moindre caractere ?
Styleman
le 24/09/2003 à 22:25
Styleman
Si je ne l'ai pas entierement recopiée, je ne vois pas ou, je cherche encore...
smiley
++ Styleman
Styleman
le 24/09/2003 à 22:41
Styleman
Je viens de tout relire...et franchement je ne vois pas smiley

Je suis peut etre bigleu mais bon, j'ai bien regardé pourtant...
++ Styleman
Répondre
LoadingChargement en cours