Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Wyniki bez powtórzeń
adrianozo
post
Post #1





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

Ostrzeżenie: (0%)
-----


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ź
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Konop857
post
Post #2





Grupa: Zarejestrowani
Postów: 81
Pomógł: 2
Dołączył: 4.05.2011

Ostrzeżenie: (10%)
X----


$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;

Ten post edytował Konop857 23.12.2013, 17:09:07
Go to the top of the page
+Quote Post
Greg0
post
Post #3





Grupa: Zarejestrowani
Postów: 264
Pomógł: 54
Dołączył: 31.08.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


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


Ten post edytował Greg0 23.12.2013, 17:10:09
Go to the top of the page
+Quote Post
adrianozo
post
Post #4





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

Ostrzeżenie: (0%)
-----


Dzięki Greg0. Bardzo przydała mi się klauzula NOT IN o której zupełnie zapomniałem (IMG:style_emoticons/default/smile.gif) .

Poszedł POMÓGŁ

Wszystko już działa
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 18:44