LIMIT-fråga

Databaser & SQL

11 svar · 219 visningar · startad av greymane

Medlem sedan juli 2001711 inlägg
Trådstart#1

Hur gör man för att dela upp innehållet i en tabell på flera sidor? som tex på altavista när man får massor med träffar. jag gissar att det får bli nåt med limit.

Medlem sedan dec. 200012 464 inlägg
#2

Jo, du har en pagestorlek och ett sidnummer. Utifrån dessa värden räknar man ut ett offset och sedan så bygger man sqlfrågan

$offset = $pagesize*($page-1);
$sql = "select * from t limit " . $offset . "," . $pagesize;
Medlem sedan juli 2001711 inlägg
#3

Det där blev jag itne så klok på :/ hur sätts värdena på $page o $pagesize?

Medlem sedan dec. 200012 464 inlägg
#4

Pagesize får du bestämma.

På varje sida som du skriver ut får du ha med länkar för att gå framåt och bakåt. Den länken innehåller då en querystring där man skickar page.

if (!isset($page) ) 
   $page = 1;
   $query = "select count(*) as antal from t";
// hämta antal poster
   $pages = ($antal - 1)/$pagesize + 1;
// räkna ut offset 

// visa data
  
  if ( $page > 1 ) 
  echo "<a href='dinsida.asp?page=" .
   $page - 1 . "'> föregående</a>"
  if ( $page < $pages )
  echo "<a href='dinsida.asp?page=" .
   $page + 1 . "'> nästa</a>"

Sen så kan du göra mer avancerat genom att ha direktlänkar till olika sidor.

Medlem sedan juli 2001711 inlägg
#5

jag hänger helt enkelt inte med :r ...

kan du beskriva vad de olika variablerna betyder?

eller känner ngn till nån lämplig HOWTO så behöver ingen beskrivning på dagisnivå tas upp här...

Medlem sedan juli 2001711 inlägg
#6

tro det eller ej, efter måånga timmar har jag äntligen fått det att funka. fast ett nytt bekymmer har uppstått. min sqlsats ser ut som följer:

"SELECT artistinfo.ID AS AID, enamn, fnamn, typ, liten, bilder.id AS BID FROM bilder, artistinfo 
			WHERE (typ='$HTTP_GET_VARS[typ1]' OR typ='$HTTP_GET_VARS[typ2]' OR typ='$HTTP_GET_VARS[typ3]'
			OR typ='$HTTP_GET_VARS[typ4]') AND AID=artistinfo.id order by enamn, fnamn LIMIT ". $offset . "," . $pagesize;

alltså blir frågan: finns det nåt smidigt sätt att plocka med värdena på $HTTP_GET_VARS[typ1.2.3.4] utan att behöva skriva in dem i länken?
alltså slippa detta:

<a href=minsida.php?typ1=<?echo $HTTP_GET_VARS[typ1]?>&typ2<?echo $HTTP_GET_VARS[typ2]?>&typ3=<?echo $HTTP_GET_VARS[typ3]?>
Medlem sedan dec. 200012 464 inlägg
#7

Kan du lagra värdena i session?
http://www.php.net/manual/en/ref.session.php

Medlem sedan jan. 20023 327 inlägg
#8

Går det att göra på detta vis med ASP också eller har det bara PHP som har stöd för denna funktionen

Medlem sedan dec. 200012 464 inlägg
#9

Ja det går, funktionen limit har inget med php att göra.

Medlem sedan jan. 20023 327 inlägg
#10

Nej, men jag har hört att ASP inte har fullt mySQL stöd eller har jag fel?

Medlem sedan dec. 200012 464 inlägg
#11

Det finns inget specifikt stöd för olika dbms i ASP.
Det är tvärtom, Mysql har inte stöd för alla ODBC-funktioner som ADO använder.

Medlem sedan jan. 20023 327 inlägg
#12

Tackar då vet jag det :)

255 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)