![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%) ![]() ![]() |
W taki sposób losuję, które rekordy z bazy danych mają być pobrane
Kod $comrades = $db -> Execute("SELECT * FROM users WHERE id >= ".$sektor_id -> fields['id']." AND id <= ".$sektor_id -> fields['id']." + 2 ORDER BY rand() LIMIT 4"); Niestety ilość rekordów spełniających te kryteria wynosi 3, a LIMIT 4. W jaki sposób przerobić to by było to prawdziwe losowanie - tj. za każdym razem byłby losowany user z podanego przedziału id bez względu na poprzednie losowania (czyt. możliwe byłoby pobranie kilka razy tego samego usera). |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 419 Pomógł: 42 Dołączył: 12.08.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
No rzeczywiście w while wyciągnąć 30 tys. wyników wylosować je, przypisać do tablicy - nie wspominając, że baza musiała przekazać do php 30 tys. wyników... Pewnie jest znacznie wydajniejsze ;]
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 09:10 |