webForumDet fria alternativet

Dela på databasen

11 svar · 176 visningar · startad av Kent

KentMedlem sedan juli 2000355 inlägg
#1

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

demo
#2

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]

KentMedlem sedan juli 2000355 inlägg
#3

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.?

KentMedlem sedan juli 2000355 inlägg
#4

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.

CssonMedlem sedan feb. 2000438 inlägg
#5

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

MarleyMedlem sedan dec. 199954 inlägg
#6

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";
KentMedlem sedan juli 2000355 inlägg
#7

Marley den där koden delar väl på en access databas.? Det är .dat filer jag vill dela upp.

MarleyMedlem sedan dec. 199954 inlägg
#8

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... :)

KentMedlem sedan juli 2000355 inlägg
#9

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.?

demo
#10

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]

KentMedlem sedan juli 2000355 inlägg
#11

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.

emissionMedlem sedan dec. 19996 721 inlägg
#12

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>&#0124; ";
}
else
{
print " <a href=\"$links?lasa=$fran\"> $varv</A> &#0124; ";
}
138 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)