23. december 2007 - 10:26Der er
15 kommentarer og 1 løsning
Problemering med sortering data-udtræk fra mysql databasen
Hejsa
Jeg sidder med et problem her, jeg arbejder lidt på en chat, hvor alle beskeder bliver gemt i en MySQL database, i denne tabel er der id, dato, klokken, afsender og besked...
jeg fremkalder data'en med denne sql-syntax set chatmain = conn.execute("select * from heroes_chatbeskeder order by id desc, klokken desc limit 15")
men lige p.t. optræder det nyeste id øverst, så dvs. man skal læse oppe fra og ned, og jeg ønsker dette skal forgå sådan de nyeste kommer nederst...
men hvis jeg laver order by id asc, viser den kun de første 15 i databasen, så dvs. den ikke skifter :-S
derfor prøver jeg, den også skal forsøge at order by klokken, men det virker ikke som om den har en effekt, nogen der kan give mig et evt. råd for dette???
samt, jeg køre dette for at refreshe vinduet <script> setTimeout('window.location="main.asp"',7000); </script>
hvilket gør, der til tider kommer en hvid skærm i 0,7 sekund, er der en metode til at undgå dette???
Hundevennen < ved at gøre sådan "order by id asc, klokken limit 15" får jeg det samme resultat med de første 15 indlæg i databasen (dvs. nogle 3 dage gamle, hvilket ikke er optimalt for en chat ;))
Jansangill < dette retunere det samme, som hundevennen's forslag :(
okay, nu har jeg fået den til at stille op korrekt :-S men så kommer problemet, nu viser den kun de 18 første lisom hundevennen og jansangill eksempler..
jeg har en limit på 18, hvis der så er 19 post, viser den jo kun de 18 første, kan man få den til at variere så det altid er de nyeste id's den bruger... og de nyeste dukker op for neden
min sql-syntax ser sådan her ud nu set chatmain = conn.execute("select * from heroes_chatbeskeder where dato = '"&FormatDateTime(now,vbshortdate)&"' order by klokken asc, id desc limit 18")
set chatmain = conn.execute("select top 15 dato * from heroes_chatbeskeder order by dato desc, klokken asc")
får jeg følgende fejl ved
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* from heroes_chatbeskeder order by dato desc, klokken asc' at line 1 /Kunder/VIS/files/members/chatten/main.asp, line 37
set chatmain = conn.execute("select * from heroes_chatbeskeder where dato = '"&FormatDateTime(now,vbshortdate)&"' order by klokken desc, id desc limit 18")
if chatmain.eof = false and chatmain.bof = false then chatmain.movelast do until chatmain.bof response.write "<tr>" response.write "<td class='brodtext' width='40px' valign='top'>" &chatmain("klokken")& "</td>" response.write "<td width='5px'> </td>" response.write "<td class='brodtext' width='100px' valign='top'>" &chatmain("afsender")& "</td>" response.write "<td width='10px'> </td>" response.write "<td class='brodtext' width='260px' valign='top'>" &chatmain("beskeden")& "</td>" response.write "</tr>"
response.write "<tr>" response.write "<td colspan='7' height='5px'> </td>" response.write "</tr>" chatmain.moveprevious LOOP end if
får følgende fejlbeskrivelse: Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E24) Rækkesættet understøtter ikke baglæns hentning. /Kunder/VIS/files/members/chatten/main.asp, line 38
ja der kom nogle fine eksempler :S med access, og nu har jeg jo fået at vide man på ingenmåde må sammenligne disse 2 database metoder, da nogle ting virker på access og andre virker på mysql
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.