W jaki sposób mogę wyświetlić ostatnie 20 rekordów? Indeksacja nie zaczyna się od 1 a od n.
Czy jest jakaś funkcja w stylu;
pseudokod:
..... LIMIT (row_count), -20 ?
Z góry serdeczne dzięki :-)
nospor
18.05.2006, 09:26:00
Cytat
Czy jest jakaś funkcja w stylu;
nie, ale jest za to sortowanie:
order bysortujesz w odwrotnej kolejnosci i wyswietlasz 20: limit 20
a teraz zajrzyj do manula i dowiesz sie jak uzyc order by
Próbowałem ale wówczas skrypt pobiera pierwszych 20 wierszy i wyświetla je w pewnej kolejności.
Ja natomiast potrzebuję aby pobrać 20 ostatnich wierszy.
Twój sposób byłby w porządku, gdyby można było indeksować w dół, tzn 0, -1, -2, -3

)))))
nospor
18.05.2006, 09:32:53
no ale te ostannie wiersze to wzgledem czego? musi byc jakas kolumna, ktora okresla kolejnosc:
.... ORDER BY jakaskolumna DESC LIMIT 20
Oki: A więc przykład :-)
id.zawartosc:
-----------------
34.aaa
35.bbb
36.ccc
37.ddd
38.eee
39.fff
40.ddd
41.ddd
42.wew
43.qqq
Chcę wyświetlić ostatnie, dajmy na to, 3 rekordy, czyli aby na wyjściu uzyskać ddd, wew, qqq. Indeksacja jest prowadzona przez id oczywiście (auto_increment, primary_key, not null), ale nie od rekordu nr 1 tylko nr n.
różnica między powyższym jest taka, że ja chcę aby ostatnim był rekord ostatni w tabeli, a nie pierwszy (w przypadku order by jakaskolumna desc limit 20 będzię kolejność qqq, wew, ddd)
Suchy
18.05.2006, 09:48:50
to moze pobierz tak jak pisze nospor a potem talibce ktore bedziesz mial jeszcze raz posortuj w odpowioedni sposob?
nospor
18.05.2006, 09:56:35
Mozesz tez spróbowac tak, jesli uzywasz php:
1) najpierw pobierasz liczbe wszytkich rekordow
2) potem tę liczbe wstawiasz do zapytania, pomniejszoną o iles tam i stosujesz taki limit: limit x,y
<?php
//tu pobierasz liczbe rekordow: select count(*) from tabela. i odbierasz to w php
//a nastepnie tworzysz zapyanie
$sql = 'select * from tabela order by id asc limit '.($iloscrekordow-3).',3';
?>
o właśnie o takie coś mi chodziło :-)
dzięki.