![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 178 Pomógł: 51 Dołączył: 7.01.2009 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Posiadam taki prosty skrypt ze stronicowaniem za pomocą LIMIT. Chciałem zrobić sortowanie losowe wszystkich rekordów z bazy i takie ich wyświetlenie. W tym zadaniu świetnie sprawia się ORDER by RAND(). Niestety, czasami niektóre rekordy się powtarzają i chciałbym to wyeliminować. Pytanie tylko jak to zrobić? Pozdrawiam, Mateusz! |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Przyszly mi do glowy 2 sposoby:
1)Zapisujesz wylosowane zapytania do sesji i potem w sql dodajesz NOT IN() 2)Zapisujesz dane to tablicy po czym losujesz je z poziomu php za pomoca array_rand()/rand()/mt_rand() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 178 Pomógł: 51 Dołączył: 7.01.2009 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
No to interesuj mnie pierwsza możliwość bo drugiej jakoś sobie nie wyobrażam.
Czyli muszę sobie do sesji zapisać tablicę, powiedzmy wielowymiarową. Na stronie każdej stronie najpierw sprawdzić czy istnieje $tabliczka[$page], po wykonaniu zapytania z pobraniem rekordów, zapisać id rekordów do tablicy $tabliczka[$page] .= $id;. Na następnej stronie, muszę zbudować zapytanie:
Dobrze rozumuję? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
po pierwsze order i limit sa na koncu a nie in().
zaraz ci odp bo usypiam braciszka. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 178 Pomógł: 51 Dołączył: 7.01.2009 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Też usypiałem braciszka jak był mały (IMG:style_emoticons/default/winksmiley.jpg)
Ten post edytował thomson89 8.11.2009, 19:31:12 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Powiedzmy ze robisz zapytanie:
POtem dane wyciagniete przez zapytanie zapisuj do sesji oczywiscie do jakies zmiennej zapisz wszystkie dane za pomoca while($dane = mysql_fetch_assoc()): Kod $_SESSION['id_rand'][] = $dane_z_sql Taki ogolny zarys bo teraz nie mam czasu. Ten post edytował marcio 8.11.2009, 19:29:41 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 178 Pomógł: 51 Dołączył: 7.01.2009 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Ok, dzięki!
POPRAWKA: Zabrałem się do roboty:
Dałem tak, żeby sprawdzić czy działa... I dalej:
Ale niestety nie działa, wywala: Kod Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\WEB\mamusia\tresc\bizuteria\galeria_wszystkie.php on line 70
Ten post edytował thomson89 8.11.2009, 21:18:50 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Podaj wiecej kodu i pogrub linie nr. 70.
Blad wedlug mnie jest spowodowany tym ze w:
Masz czysty string zrob tak jak ja ci mowilem zamiast twojego kodu daj ten:
A w zapytanie zamien NOT IN na ten:
Powinno dzialac |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 178 Pomógł: 51 Dołączył: 7.01.2009 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Nic nie wywala, ale wyników też nie wyświetla. Powiem że jest ich ok. 500, więc 150 nie powinno robić problemu.
Linia 70:
Ten post edytował thomson89 9.11.2009, 08:06:37 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 21:55 |