Hur gör man för att dela upp databasen på olika sidor, det ska se ut ungefär så här,
Sidor, 1 2 3 4 5 6 7
Dela på databasen
11 svar · 176 visningar · startad av Kent
Hej Kent!
Har du inte ställt samma fråga några rubriker längre ned? http://cgi.webforum.nu/wf/Forum14/HTML/000323.html
I den fråga så har du ju löst detta själv i ett gästboksscript. Till ett webbforum är principen densamma.
Eller har jag missförstått din fråga?
//Demo
------------------
Den som vandrar ödmjukhetens väg drabbas inte av trafikstockningar.
[Redigerat av demo den 23 jan 2001]
Jo visst, men den koden visar,
1-100 100-200 200-300 osv.
om jag då har ett par tusen inlägg så
ser det inte vackert ut på sidan med alla dessa uppdelningen, så jag vill då ha istället ex,
Sidor, 1 2 3 4 5 osv.
förstår du.?
Ingen som kan detta, behöver inte ha en fullständig källkod utan en förklaring på hur man gör att bygga upp det går bra.
Du kan till exempel göra så här:
- Kolla hur många inlägg du har.
- Dela med antalet inlägg som visas per sida.
- Addera det talet med 0.49.
- Ta bort decimalerna.
Då vet du hur många sidor du har, och kan köra en loop där du skriver ut en länk per loopvarv.
/Csson
------------------
Erimax.com
Cykelsemester
För att dela upp inläggen får du göra en select med limit.
Här är ett exempel på hur det skulle kunna se ut:
# Initiate variables
$counter = 0; # Counts the for loop below
$limit = 20; # Maximum of results on a single page
$current_page = $post{"page"}; # The current page
$page_count = $current_page+1; # Variable to display the page count
# get total no of subjects
$sql_statement="SELECT COUNT(subject_id) FROM fb_subjects WHERE forum_id = $forum_id";
$sth = $dbh->query($sql_statement);
@rows = $sth->fetchrow;
$total_rows = $rows[0];
# get total no of subjects today
$sql_statement="SELECT COUNT(subject_id) FROM fb_subjects WHERE forum_id = $forum_id and add_date = '$date'";
$sth = $dbh->query($sql_statement);
@rows = $sth->fetchrow;
$total_today= $rows[0];
# Initiate variables
$no_pages_temp = $total_rows / $limit; # Number of total pages as a decimal
$no_pages = int($total_rows / $limit)+1; # Number of total pages as an integer
# get the hits
$start = $current_page*$limit;
# The next page not above the total number of pages
if ($current_page ne $no_pages-1){
$next_page = $current_page+1;
} else {
$limit = int($total_rows % $limit); # Number of elements on the last page
$next_page = $no_pages-1;
}
# The previous page not below 0
if ($current_page ne 0){
$prev_page = $current_page-1;
} else {
$prev_page = 0;
}
#Get subject info
$sql_statement="SELECT * FROM fb_subjects where forum_id = $forum_id order by int_last_date desc, last_timt desc LIMIT $start,$limit";
Marley den där koden delar väl på en access databas.? Det är .dat filer jag vill dela upp.
Ok... Jag tror inte riktigt jag förstår vad det är du vill göra. Men om du har alla inlägg i en text fil så kan du göra på ungefär samma sätt. Du läser in alla rader i en array och listar de inlägg du vill i en loop.
for($i = $start;$i < $limit;$i++){
print "$array[$i]";
}
Men som sagt. Jag tror inte att jag förstått dit problem riktigt... :)
Jag har alla inlägg i en enda text fil (gbok.dat), då vill jag dela upp alla dessa och visa 10 poster per sida,ex,
1 2 3 4 5.
Förstår du.?
Men är det inte ett sådant script du använder i ditt tidigare inlägg?http://cgi.webforum.nu/wf/Forum14/HTML/000323.html
Där delar du ju upp inläggen i en funktion som liknar den funktion du nu efterfrågar.
Det scriptet som du använder det inlägget, borde väl även fungera i detta sammanhang?
Mvh,
Demo
------------------
Den som vandrar ödmjukhetens väg drabbas inte av trafikstockningar.
[Redigerat av demo den 29 jan 2001]
Jo men den koden visar ju,
1-10 20-30 30-40 osv.
om man då har flera hundra inlägg så ser jävligt fult ut med alla dessa uppdelningar, vill då istället ha ex,
1 2 3 4 5 osv.
Med utgångspunkt från koden i din förra tråd.
if ($INFO{'lasa'}==$fran){
print "<b> <a href=\"$links?lasa=$fran\"> $varv</A> </b>| ";
}
else
{
print " <a href=\"$links?lasa=$fran\"> $varv</A> | ";
}