Bosse168Medlem sedan nov. 20031 018 inlägg Använder SQL-satsen nedan för att loopa ut poster ur min MySQL databas, men problemet är att den inte loopar ut dom nyaste posterna om det har skrivits in mer än 15 poster idag utan den loopar fortfarande ut dom 15 äldsta posterna.
Någon som vet vad det är som är fel?
SQL="SELECT id,slaf,texten,datum,mobil " & _
" FROM mess WHERE DAYOFMONTH(datum) = DAYOFMONTH(CURDATE()) " & _
" AND MONTH(datum) = MONTH(CURDATE()) " & _
" AND YEAR(datum) = YEAR(CURDATE()) ORDER BY datum LIMIT 15"
InsiderMedlem sedan jan. 2000978 inlägg Testa att lägga in DESC nånstans på slutet. Alternativt testa med FIRST 15 istället för LIMIT 15.
Kanske kan va nåt, chansar lite bara... :h
Bosse168Medlem sedan nov. 20031 018 inlägg Lägger jag till DESC så skrivs posterna ut åt fel håll och FIRST 15 funkar inte.
Fel meddelandet:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[MySQL][ODBC 3.51 Driver][mysqld-4.0.22-nt]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 'FIRST 15' at line 1
LarsGMedlem sedan dec. 200012 464 inlägg SQL="select * from (SELECT id,slaf,texten,datum,mobil " & _
" FROM mess WHERE DAYOFMONTH(datum) = DAYOFMONTH(CURDATE()) " & _
" AND MONTH(datum) = MONTH(CURDATE()) " & _
" AND YEAR(datum) = YEAR(CURDATE()) ORDER BY datum desc LIMIT 15 ) dt order by datum"
Om du inte har 4.1 så finns följande alternativ
- Uppgradera
- Skapa en arbetstabell med den inre selecten och hämta från den sorterat stigande
- Hämta in raderna med getrows och skriv ut dom i omvänd ordning
Bosse168Medlem sedan nov. 20031 018 inlägg Jag använder 4.0.22 så hur gör man för att få alternativ 3 att funka?
LarsGMedlem sedan dec. 200012 464 inlägg Om man normalt gör (lite schematiskt)
a = rs.getrows
for i = 0 to ubound(a)
...
next
så gör man istället
a = rs.getrows
for i = ubound(a) to 0 step -1
...
next
Det finns ett flertal exempel på getrows i ASP-forumet så sök där för att få detaljerna rätt.
Bosse168Medlem sedan nov. 20031 018 inlägg Använder denna kod men den loopar fortfarande ut fel.
SQL="SELECT id,slaf,texten,datum,mobil " & _
" FROM mess ORDER BY datum DESC LIMIT 15"
Set Rs = Connect.Execute(SQL)
myArray = Rs.GetRows()
Rs.Close : Set Rs = Nothing
for i = ubound(myArray) to 0 step -1
Response.Write(myArray(3,i))
next
@ndersMedlem sedan juni 200032 969 inlägg Nu har du ju med DESC i sorteringen i SQL-frågan, plus att du vänder på allt när du skriver ut det. Du hämtar alltså i den ordningen du vill ha det, men du vänder på utskriften. Med den SQL-frågan du har i ditt sista inlägg ska du inte vända på utskriften.
for i = 0 to ubound(myArray, 2)
Bosse168Medlem sedan nov. 20031 018 inlägg Fick ordning på det tack ska ni ha för hjälpen. :)