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"
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
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
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
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.