Patrik B hur gör jag för att hämta ur en annan tabell i ditt paging script.
när man hämtade med typ 1,I 4,I osv
men om jag skriver dit en tabell till i select satsen så hämtar den ju från den som står först. Hur hämtar jag ur en ny tabell som jag lagt till?
Nytt Script på wF Script!
95 svar · 786 visningar · startad av PatrikB · sida 3 av 5
Trådstarten, av PatrikB
Har lagt upp ett paging script som även funkar på chilliASP =O) <http://script.webforum.nu/wf/Forum1/HTML/000063.html> Några frågor? bara att posta ;) cya, PatrikB
Läs hela trådstarten →ordningen för fälten i sql-utrycket är det som styr ordningen på hur de hamnar i arrayen.
Så har du tex:
strSQL = "SELECT * FROM kontaktpersoner, kontor
så kommer det att beroende på hur många fält som finns i varje tabell arrayen att se ut så här:
arrArray(0,I)'## -- innehåller det först fältet i tabellen kontaktperson
arrArray(1,I)'## -- innehåller det andra fältet i tabellen kontaktperson
arrArray(n,I)'## -- innehåller det n fältet i tabellen kontaktperson(eller kontor)
etc.
Sedan att den byter tabell spelar ingen roll, det är ett recordset som du får tillbaka.
Alltså, det är bara att bygga på arrayen så "hamnar" du snart på posterna för kontor.
cya,
PatrikB
Ok nu fattar jag tackar så mycket för hjälpen Patrik
Ok nu fattar jag tackar så mycket för hjälpen Patrik
Hej har ett litet problem med att skicka med en variabel till en nästa sida i din pagingkod kan du se vad det är för fel ? Det är variabeln kontor.
'## -- skriv ut en länk till föregående sida --
If CInt(WichPage) > 1 Then
Response.Write "<tr><td align=left><a href='" & strScriptName & "?" & "kontor=" & Server.URLEncode(kont("kontor")) & "page=" & WichPage - 1 & "'>Nästa <img border=0 src= <A HREF="http://www.bengtdahlgren.se/bilder/pilar/left.gif></a></td>"" TARGET=_blank>http://www.bengtdahlgren.se/bilder/pilar/left.gif></a></td>"</A>
Hello,
i querystringen så behöver du stoppa in ett "och" tecken framför page:
'## -- skriv ut en länk till föregående sida --
If CInt(WichPage) > 1 Then
Response.Write "<tr><td align=left><a href='" & strScriptName & "?" & "kontor=" & Server.URLEncode(kont("kontor")) & "&page=" & WichPage - 1 & "'>Nästa <img border=0 src= <A HREF="http://www.bengtdahlgren.se/bilder/pilar/left.gif></a></td>"" TARGET=_blank>http://www.bengtdahlgren.se/bilder/pilar/left.gif></a></td>"</A>
cya,
PatrikB
Jag har tagit över efter Cogo....Han fixa med detta scriptet ett tag
Jag får följande felmedelande när jag la in koden du gav till Cogo
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'kontor'
/paging/paging3.asp, line 256
hur kommer detta sig?
Jag hämtar frågesträngen längst upp på sidan.
kontor = Request.Querystring("kontor")
Då kan jag väl använda mig av variabeln i frågesträngen och använda mig av?
Hur skriver jag urlEncode strängen då??
Jag fick ordning på det....:)
Jag försöker använda ditt script men får
Felaktigt matrisindex: '15'
Såg dessa rader:
m_intTotalPages = Cint((HowManyRecords / PageSize) + 0.5)
'm_intTotalPages = CInt(((HowManyRecords / PageSize) + 1) - 1)
Den ena är ju utkommenterad....
hmm Är det bara jag som får problem
Jag läste här att man får samma problem när man bara har en post men det är ju löst.
Det skapas ingen ny 'Page' vid första extraposten utan efter några st. beroende på vad jag har för pagesize
Om jag har pagesize 10 och har tio poster skapas ändå en '2'länk vilket ger ett fel...
Förstår du mitt problem eller ska jag förklara mer vad jag menar ?
Mvh
[Redigerat av Macce den 14 jul 2001]
Hello,
har ingen lösning för tillfället.
Försöker att komma med en i nästa vecka när man e tillbaks på sin egen maskin igen.
cya,
PatrikB
Fixade till en lösning.
Om det är någon som har en bättre lösning så posta den gärna här eller skicka ett mail till mig.
Ni som redan laddat ned paging scriptet BÖR uppdatera denna funktion:
'## -------------------------------------------------------------
'## -- räkna ut hur många sidor som ska visas --
'## -- updated: July 14, 2001
'## -- update by: Patrik Berggren, mrwize@mrwize.nu
'## -------------------------------------------------------------
'##
'## -- vid vissa tillfällen returnerades fel sidantal.
'## Felet/Buggen berodde på avrundningen med CInt()
'## och CLng().
'## -- Avrundningen som jag gjorde:
'##
'## m_intTotalPages = CInt((HowManyRecords / PageSize) + 0.5)
'##
'## vart i vissa fall fel och sid antalet vart fler än
'## vad det egentligen skulle vara.
'## Lösningen, hoppas jag, är att kolla hur stor resten
'## blir vid avrundning.
'## Om resten är större än 0 eller mindre än 0.5 så ska en sida
'## läggas till.
'## I annat fall så gäller avrundningen.
'## Har testat flera olika kombinationer med olika records antal
'## och sidstorlekar och ej hittat några buggar.
'## Så nu hoppas jag att denna paging är buggfri *ler*
'## -------------------------------------------------------------
Function countPages(ByVal HowManyRecords, ByVal PageSize)
Dim m_intTotalPages, m_intRest
m_intTotalPages = HowManyRecords / PageSize
If m_intTotalPages < 1 Then
m_intTotalPages = 1
Else
m_intRest = m_intTotalPages - CLng(m_intTotalPages)
If m_intRest > 0 AND m_intRest < 0.5 Then
m_intTotalPages = CLng(m_intTotalPages) + 1
Else
m_intTotalPages = CLng(m_intTotalPages)
End If
End If
'## -- return how many pages --
countPages = m_intTotalPages
End Function
Hoppas nu att scriptet blivit buggfritt.
cya,
PatrikB
Hej PatrikB
När du gör db-kopplingen så lägger du allt i getrow...är det en bra lösning? Är det inte bättre att räkna upp antal poster jämföra dessa med antal poster per sida och sedan skapa antal sidor utifrån det. Eller det är kanske så det fungerar, men då borde det väl stå tex Select TOP 50...
En fundering bara
Anledningen till att detta script kom till är att jag hjälpte en kompis som kör chilliASP och inte fick andra liknande pagingscript att funka.
Efter en hel del turer så testade man lite varianter och denna va den smidigaste som jag kunde komma på efter flera olika varianter.
Fast, kan du fixa en smigigare som även funkar i chilliASP så blir jag mer än nöjd *ler*
cya,
PatrikB
Om man skulle flytta upp variabeln intPageSize före SQL-satsen så att det blir så här:
'## -- hur många poster ska visas per sida --
intPageSize = 50
'## -- sql-fråga för att hämta alla poster --
'## -- denna ska du ändra så att den stämmer
'## med det som du vill hämta --
m_strSQL = "SELECT TOP " & intPageSize & "blabla"
Fungerar inte det på ChilliAsp?
jo,
men hur hade du tänkt dig sen?
prova att utveckla detta lite mer ... fast du får EJ använda ADODB.Recordset för vissa av "providerserna" har inte fullt stöd för den.
cya,
PatrikB
Ska göra det...hinner inte riktigt nu men kommer jag på något så kan jag skicka det till dig...
Men på något sätt bygger man upp en funktion som genererar följande värden
50 (som är page 1)
50-100 (som är page 2)
100-50 (som är page 3)
etc.
Det borde inte vara så svårt egentligen. Ska tänka lite hur man kan göra, återkommer.
[r]
Det är ju det jag gjort, bygggt upp en funktion för att veta att page 3 börjar med id x
[/r]
alla idn står ju inte i följd, en del saknas tex efter att man deletat ngt etc.
Men med subqueries går det att lösa utan denna funktion, fast när jag testade det så gick det mega segt mot Access dbn, men hade man kört en ms-sql server så hade man kunna gjort det med sp och snabbat upp det lite granna, men i Access va det ingen bra lösning.
cya,
PatrikB
