![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 12 Dołączył: 23.11.2006 Skąd: WL Ostrzeżenie: (0%) ![]() ![]() |
Mam pewien problem z wylosowaniem wyników z bazy.
Próbuje wylosować 3 wyniki obok obecnie przeglądanego filmiku ale przy tym zapytaniu wyżej filmiki nonstop się powtarzają nie wiem jak to zrobić zmienna $video jest to id obecnie przeglądanego filmiku Z góry dziękuje za pomoc Dobra znalazłem już odpowiedź
Tylko że jest drugi problem z użyciem order by rand() przy kilku set tysiącach rekordów zapytanie może się wykonywać kilkanascie sekund tak wyczytałem. A to mnie nie ustawia ponieważ nie chcę zmulać bazy danych. Zna ktoś bardziej optymalne metody? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Powiem tylko że wyciąganie ilości elementów i później losowanie 3 z zakresu 0 do $max jest bezsensowne niestety... Jaka pewność, że połowa elementów nie została usunięta wewnątrz? Wtedy między wyznaczonym zakresem będzie luka, która może zostać wylosowana i przekazana do bazy danych. Nie chodzi o losowanie liczb z zakresu MIN_ID..MAX_ID, tylko z zakresu 0..NUM_ROWS-1 (gdzie NUM_ROWS to liczba wierszy spełniających warunki) i wstawienie do zapytania:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 09:35 |