Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Wyniki bez powtórzeń
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam wszystkich.

Mam pewien problem z wymyśleniem rozwiązania, którego oczekuje.
Mianowicie chcę wyświetlić dajmy na to kilka rekordów z bazy danych np. 10 no to daje:

  1. SELECT `kolumna1`, `kolumna2` FROM `tabela` LIMIT 0, 10
tylko problem jest w tym, że chciałbym żeby za każdym razem wyświetlało inne rekordy. Mam niby pomysł, ale wydaje mi się, że może niepotrzebnie wykonywać za dużo zapytań do bazy.

Dodatkowo jeśli np. wyświetlę już te 10 rekordów, a w bazie jest ich 500 to w następnej części chciałbym wyświetlić pozostałem 490 pomijając te już wyświetlone. Da się to jakoś szybko i bez zbędnych zapytań wykonać?

Z góry dziękuje za odpowiedź
Konop857
$a = 0;
$b = 10;

  1. SELECT `kolumna1`, `kolumna2` FROM `tabela` LIMIT $a, $b


Z każdym zapętleniem lub czymś innym zwiększasz a i b o 10 albo do innej wartości jeśli np dane przenosisz w linku

$a += 10;
$b += 10;
Greg0
No to zapraszam do lektury wielu rozwiązań na losowe wybieranie rekordów. np. tutaj http://blog.vokiel.com/mysql-rand-jak-pobrac-losowe-wiersze/
Odnośnie drugiego problemu to gdy już pobierzesz 10 losowych rekordów, masz ich ID. Jeśli masz ich ID to wtedy pobierasz całą resztę których ID != ID losowanych.
Konkretnie to formuła
  1. WHERE NOT IN (12, 45, 1, 5) %przykładowe wylosowane ID
adrianozo
Dzięki Greg0. Bardzo przydała mi się klauzula NOT IN o której zupełnie zapomniałem smile.gif.

Poszedł POMÓGŁ

Wszystko już działa
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.