Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z wylosowaniem jednego id z puli
--Greg--
post
Post #1





Goście







Chciałem najpierw pobrać listę id należących do danej tabeli a potem wylosować z nich jedno id, próbowałem to zrobić w ten sposób:

  1. $sql = 'SELECT id FROM `klienci` WHERE id > 232 LIMIT 1000;' ;
  2. $resultx = mysql_query($sql);
  3. $k=rand(0,1000);
  4.  
  5. if(mysql_num_rows($resultx) > 0) {
  6. $row123 = mysql_fetch_array($resultx);
  7. echo 'Wylosowane id'.$row123[id][$k];
  8. }


Niestety to nie działa.
Jak to ulepszyć, żeby zadziałało ?
Go to the top of the page
+Quote Post
pablo89pl
post
Post #2





Grupa: Zarejestrowani
Postów: 143
Pomógł: 19
Dołączył: 7.09.2009
Skąd: Rzeszów

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


masz liczbe z przedzialu 0 do 1000 a jak masz 2 wyniki to co ? nie zwroci Ci przeciez...
$sql = 'SELECT id FROM `klienci` WHERE id > 232 LIMIT 1000;' ;
$resultx = mysql_query($sql);

$count = mysql_num_rows($resultx);
  1. if( $count > 0)
  2. {
  3. $k=rand(0,$count);
  4. $row123 = mysql_fetch_array($resultx);
  5. echo 'Wylosowane id'.$row123[$k]['id'];
  6. }


a tak btw to mozesz zrobic przeciez
  1. SELECT jakies,pola FROM tabela ORDER BY RAND() LIMIT 1

i masz rekord...
Go to the top of the page
+Quote Post
--Greg--
post
Post #3





Goście







Założyłem, że będzie przynajmniej 1000 wyników...
Ten 2 sposób rzeczywiście jest fajniejszy.
Zaraz to przetestuje.
Thanks !
Go to the top of the page
+Quote Post
pablo89pl
post
Post #4





Grupa: Zarejestrowani
Postów: 143
Pomógł: 19
Dołączył: 7.09.2009
Skąd: Rzeszów

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


a i jeszcze pytanie odnośnie optymalizacji
w równoległym podobnym wątku zaproponowano takie rozwiązanie - oczywiście najbardziej wydajne:

$r = mysql_query("SELECT id FROM klienci");
$d = mysql_fetch_row($r);
$losowa= mt_rand(0,$ d[0] - 1);

$r = mysql_query("SELECT tutaj_pola FROM klienci LIMIT $losowa, 1");

tak że rozwiązań jest wiele..
Go to the top of the page
+Quote Post
Hpsi
post
Post #5





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


przeczytaj sobie ten temat (IMG:style_emoticons/default/tongue.gif) Temat: PHPMYSQL LOSOWY REKORD
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.12.2025 - 08:16