webForumDet fria alternativet

Pagingproblem i forum

4 svar · 376 visningar · startad av Blockqoute

BlockqouteMedlem sedan dec. 200380 inlägg
#1

Jag har ett problem med paging i mitt forum. För att se hur det ser ut så kan ni gå in på: http://www.danzayengols.com/exjobb/main_forum.php?f=2. Nu är limit satt till 1 och det finns bara två trådar som skall visas, en på varje sida. Den första sidan och tråden visas som den ska. Men när man klickar på "Nästa" så kommer man bara till en tom sida utan någon tråd. Och klickar man tillbaka så är även den första sidan tom nu.

Jag anar att det har något att göra med att forum-id:et inte skickas med till de andra sidorna förutom den första. Men jag vet inte riktigt hur man kan göra för att skicka med det om det skulle vara det som var problemet.

Finns det någon som kan hjälpa mig med detta?

Koden ser nu ut som nedan:

<?include "connect.php";

//session_start();
// om session tilldelad, login = ok.
//if(!isset($_SESSION['sess_id'])){
//header("location:lanalas.php");
//}

$f = $_GET['f'];

$result = mysql_query("select titel, beskrivning from forum where id = '$f'");

$rad = mysql_fetch_array($result);
$forum_titel=$rad['titel'];
$forum_beskrivning=$rad['beskrivning'];

?>
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Bokia - Startsida</title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>

<body>
<div align="center">
<?
include "inc_huvud.php";
include "inc_meny.php";
include "inc_meny2_lanalas.php";
?>

<table width="735" cellspacing="0" cellpadding="0" border="0" class="main"><tr><td valign="top">
			<table border="0" width="700"><tr><td align="center">
			<h2>Låna & Läs</h2>
			</td></tr>
			<tr><td align="center"><h1>Forum</h1></td></tr></table>
       <b>Visar Forum: <? echo $forum_titel; ?></b><br>
			 <?echo $forum_beskrivning;?><p>
       <a href="forum.php">Forumindex</a>
       <p>
       <a href="create_topic.php?f=<? echo $f; ?>">Skapa nytt ämne</a><br> 

       <table width="700" cellpadding="5" cellspacing="1" border="0" style="border:1px solid #000;"> 
       <tr> 
         <td style="background-color:#7E7E7E;">Ämne / Grundare</td> 
         <td style="background-color:#7E7E7E;">Senaste inlägg</td> 
    		 <td style="background-color:#7E7E7E;">Svar</td> 
    		 <td style="background-color:#7E7E7E;">Visningar</td> 
       </tr> 
			 <?
			 
#############################PAGING DEL 1 START###################################			 
// Nu bestämmer vi antal per sida och kollar vi upp totala antalet 
$limit = 1; // Antal per sida 
$result5 = @mysql_query("SELECT count(*) as count FROM forum_question") 
  or die("Error fetching number in DB<br>".mysql_error()); 
$row5 = @mysql_fetch_array($result5); 
$numrows = $row5['count']; // Antal i databasen 
 
// Sedan kollar vi om startvariabeln är satt 
if (!isset($_GET['start']) || $_GET['start'] == "") 
  $start = 0; 
else 
  $start = $_GET['start']; 
 
// Då räknar vi ut hur många sidor det blev 
$pages = intval($numrows/$limit); 
if ($numrows%$limit) 
  $pages++; 
 
// Hämta länk till förstasidan och föregående sida 
if ($start > 0) { 
  $numlink = '<a href="?start=0">Första</a> '; 
  $numlink .= '<a href="?start='.($start - $limit).'"><img src="gif/knapp_bakat.gif" border="0"></a> '; 
} else { 
//  $numlink = '«« '; 
  $numlink .= '<img src="gif/knapp_bakat_ejaktiv.gif" border="0">  '; 
} 
 
// Hämta sidonummer 
for ($i = 1; $i <= $pages; $i++) { 
  $newoffset = $limit*($i-1); 
  if ($start == $newoffset) 
    $numlink .= '['.$i.'] '; 
  else 
    $numlink .= '<a href="?start='.$newoffset.'">'.$i.'</a> '; 
} 
 
// Hämta länk till nästa sida 
if ($numrows > ($start + $limit)) 
  $numlink .= '<a href="?start='.($start + $limit).'"><img src="gif/knapp_framat.gif" border="0"></a> '; 
else 
  $numlink .= '<img src="gif/knapp_framat_ejaktiv.gif" border="0"> '; 
 
// Hämta sista sidan 
if ($start != $newoffset) 
  $numlink .= '<a href="?start='.$newoffset.'">Sista</a> '; 
else 
  $numlink .= '';
	
#############################PAGING DEL 1 SLUT###################################	
	
       // for each row in our $result2 (the threads query), we display  the info. below.
			 $result2 = mysql_query("SELECT * FROM forum_question WHERE fid = '$f' ORDER BY datetime DESC LIMIT ".$start.",".$limit.""); 
			 while($row2 = mysql_fetch_array($result2)) 
			 { 
   		   // redefine our thread row values 
   			 $thread_id = $row2['id']; 
   			 $thread_titel = $row2['topic']; 
   			 $thread_anvandare = $row2['name'];
				 $thread_lastpost = $row2['lastpost'];
   			 $thread_datetime = $row2['datetime']; 
   			 $thread_visningar = $row2['view']; 
   			 $thread_svar = $row2['reply']; 
?> 
  <tr> 
    <td style="background-color:#eee;"> 
    <a href="view_topic.php?t=<? echo $thread_id; ?>"><? echo $thread_titel; ?></a> 
    <br>skapad av: <b><? echo $thread_anvandare; ?></b> 
    </td> 
    <td style="background-color:#eee;"><b><? echo $thread_lastpost;?></b><br><?echo $thread_datetime; ?></td> 
    <td style="background-color:#eee;"><? echo $thread_svar; ?></td> 
    <td style="background-color:#eee;"><? echo $thread_visningar; ?></td> 
  </tr> 
<? 
} 
?>  
</table>
<?
#############################PAGING DEL 2 START###################################	
echo $numlink;
#############################PAGING DEL 2 SLUT####################################
?>
			 
</td>
</tr>
</table>

<?
include "inc_botten.php";
?>

</body>
</html>
liljaMedlem sedan juli 20041 183 inlägg
#2

Jag har inte orkat gå igenom hela koden men när du länkar till sidan använder d variabeln 'f' och när du länkar mellan sidorna använder du variabeln 'start'. Är det korrekt?

Växlar du sida försvinner f och därför vet inte scriptet vilket forum den ska hämta. Eller? Alltså, om du inkluderar 'f' i din paging borde det funkar...

BlockqouteMedlem sedan dec. 200380 inlägg
#3

Det låter precis som att det är det problemet jag trodde att det skulle vara. Men hur gör jag, för att inkludera '$f' i pagingen?

liljaMedlem sedan juli 20041 183 inlägg
#4

Du måste inludera variabeln $f i alla länkar. Tror detta är alla ställen?

// Hämta länk till förstasidan och föregående sida
if ($start > 0) {
  $numlink = '<a href="?start=0&f='.$f.'">Första</a> ';
  $numlink .= '<a href="?start='.($start - $limit).'&f='.$f.'"><img src="gif/knapp_bakat.gif" border="0"></a> ';
} else {
//  $numlink = '«« ';
  $numlink .= '<img src="gif/knapp_bakat_ejaktiv.gif" border="0">  ';
}

// Hämta sidonummer
for ($i = 1; $i <= $pages; $i++) {
  $newoffset = $limit*($i-1);
  if ($start == $newoffset)
    $numlink .= '['.$i.'] ';
  else
    $numlink .= '<a href="?start='.$newoffset.'&f='.$f.'">'.$i.'</a> ';
}

// Hämta länk till nästa sida
if ($numrows > ($start + $limit))
  $numlink .= '<a href="?start='.($start + $limit).'&f='.$f.'"><img src="gif/knapp_framat.gif" border="0"></a> ';
else
  $numlink .= '<img src="gif/knapp_framat_ejaktiv.gif" border="0"> ';

// Hämta sista sidan
if ($start != $newoffset)
  $numlink .= '<a href="?start='.$newoffset.'&f='.$f.'">Sista</a> ';
else
  $numlink .= '';
BlockqouteMedlem sedan dec. 200380 inlägg
#5

Tack så mkt! Fungerar perfekt!

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)