webForumDet fria alternativet

LIMIT-fråga

11 svar · 216 visningar · startad av greymane

greymaneMedlem sedan juli 2001661 inlägg
#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.

LarsGMedlem sedan dec. 200012 465 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;

------------------
essentitia preter non sans multiplicandum

greymaneMedlem sedan juli 2001661 inlägg
#3

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

LarsGMedlem sedan dec. 200012 465 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.

------------------
essentitia preter non sans multiplicandum

greymaneMedlem sedan juli 2001661 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...

greymaneMedlem sedan juli 2001661 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]?>
LarsGMedlem sedan dec. 200012 465 inlägg
#7

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

------------------
essentitia preter non sans multiplicandum

CompusaMedlem sedan jan. 20022 952 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

------------------
Nytt nickname, tidigare "känd" under namnet iceM2

LarsGMedlem sedan dec. 200012 465 inlägg
#9

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

------------------
essentitia preter non sans multiplicandum

CompusaMedlem sedan jan. 20022 952 inlägg
#10

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

------------------
Nytt nickname, tidigare "känd" under namnet iceM2

LarsGMedlem sedan dec. 200012 465 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.

------------------
essentitia preter non sans multiplicandum

CompusaMedlem sedan jan. 20022 952 inlägg
#12

Tackar då vet jag det :)

------------------
Nytt nickname, tidigare "känd" under namnet iceM2

Genererad på 377 ms · cache AV · v20260730165559-full.f96bc7eb