Witam. Chciałem pobrać z tabeli wszystkie rekordy tylko od końca. Nie mogę zastosować sortowania bo nie mam kolumny według której mógłbym posortować rekordy. Jak mam to zrobić?
Jak nie masz sortowania to co rozumiesz przez 'od konca'? Stworz taka kolumne i bedzie latwo wykonac zapytanie.
tylko że ja mam już w tej tabeli dane i będzie bałagan. Jak dajesz samego SELECTa to podaje ci od pierwszego dodanego rekordu do ostatnio dodanego rekordu a ja chce odwrotnie :)
zapisac do tablicy i rsort/arsort, lub w petli od 0 do num_rows odczytywac wartosc przez mysql_result(koniec - iteracja)
Nie wiem w czym problem dodac teraz kolumne z auto_increment - ponumeruje sie tak jak rekordy sa ulozone i mozesz sortowac. Wrzucanie wszystkiego do tablicy to sredni pomysl jak danych jest 10 mln a chcemy 10 ostatnich rekordow...
No to nie łatwiej przez mysql_result? Nie trzeba będzie tracić miejsca w bazie na 10mln pól typu int ;)
Ale zeby pobrac z tablicy 10 ostatnich pol to te 10mln musisz przeslac do strony. Zakladajac, ze autor tworzy strone, bo nigdzie o tym nie pisal. Wybieraj - wysylanie 10mln rekordow czy jedno dodatkowe pole numeryczne (czyt. zajmuje niewiele miejsca).
aa tez prawda, nie wiem czemu mi to umknelo - moj blad
Dzięki bardzo. Właśnie nie lepiej żeby mysql wszystko przetworzył? :P
No lepiej, lepiej. Dlatego dodaj ta dodatkowa kolumne i po sprawie.
MikiKam napisał(a)
Jak dajesz samego SELECTa to podaje ci od pierwszego dodanego rekordu do ostatnio dodanego rekordu a ja chce odwrotnie :)
TO NIE JEST PRAWDA I NIE SUGERUJCIE SIĘ NIBY POPRAWNYM SORTOWANIEM bo przy selct bez order by dane nie są wcale sortowane!!
a jak chcesz mieć dane w jakiejś kolejności to musisz wiedzieć wg czego one mają być - chcesz wg. kolejności dodania to autoinc timestamp itp