Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Czym zastąpić ORDER BY RAND
--Andrzej--
post
Post #1





Goście







Witam, czytałem o tym, że nie powinno się stosować tego typu sortowania do pobierania z bazy wyników. Jednak nigdzie nie mogę znaleźć przykładu jak pobrać wszystkie wyniki i wyświetlić je w losowej kolejności.
Dodam tylko, że to czy będą one posortowane losowo czy normalnie zależy od tego czy pewna zmienna posiada stan 0 czy 1. Pozdrawiam i proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


A szukałeś...?
Go to the top of the page
+Quote Post
skowron-line
post
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


http://www.electrictoolbox.com/msyql-alter...-order-by-rand/
Go to the top of the page
+Quote Post
jackussa
post
Post #4





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 2.09.2010

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


a jak nie chcesz używać ORDER BY RAND() możesz je pomieszać w PHP

  1. $query = "SELECT * FROM table" ;
  2. $results = mysql_query($query) or die(mysql_error());
  3. $array = array();
  4. while ($row = mysql_fetch_assoc($results))
  5. {
  6. $array[] = $row;
  7. }
  8.  
  9. shuffle($array);
Go to the top of the page
+Quote Post
seba123
post
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 20.03.2008

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


@up - to nie będzie dobre gdy ma dużo rekordów bądź chce zastosować limit z wybranymi kryteriami (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@seba123: To w ogóle nigdy nie będzie dobre. Pod absolutnie każdym względem jest dziesiątki razy gorze od i tak fatalnego ORDER BY RAND().
Go to the top of the page
+Quote Post
--Andrzej--
post
Post #7





Goście







I na tym właśnie polega problem, każdy pisze coś innego a ja nie wiem kogo słuchać (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #8





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


W podanym przez @skowron-line artykule i w ~50 pośrednio podanych przeze mnie masz z pokrywające się informacje.
Go to the top of the page
+Quote Post
--Andrzej--
post
Post #9





Goście







Dziękuje, zastanawiam się jeszcze czy w przypadku małej ilości użytkowników i pobieraniu max 20 rekordów z bazy ORDER BY RAND jest również nie zalecane?
Go to the top of the page
+Quote Post
skowron-line
post
Post #10





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Cytat(-Andrzej- @ 1.02.2012, 08:59:27 ) *
Dziękuje, zastanawiam się jeszcze czy w przypadku małej ilości użytkowników i pobieraniu max 20 rekordów z bazy ORDER BY RAND jest również nie zalecane?

Można zastosować ale, Nie odwalaj fuszerki, naucz się robić porządnie bo później już zawsze będziesz tak robił.
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: 22.08.2025 - 20:01