Autor | Zpráva | ||
---|---|---|---|
daveho Profil |
#1 · Zasláno: 21. 7. 2008, 18:59:03
zdravim, da se pouzit select pro vypis z tabulky pri "nahodilem" razeni ?
pri normalnim pristupu se mi napr. zobrazi trideni 1,2,3,4,5,6,7,8,9 atd.. Jde to i nahodile? napr. 2,8,4,5,3,1,9,7, atd.. a pri pristim dotazu zase jinak ? diky |
||
nightfish Profil |
#2 · Zasláno: 21. 7. 2008, 19:04:25
máš na mysli toto?
select sloupec1, sloupec2 from tabulka order by rand() |
||
joe Profil |
#3 · Zasláno: 21. 7. 2008, 19:35:26
daveho
viz. nightfish, ale lepší by to bylo možná přes PHP a pak vybrat určité id ;-) |
||
nightfish Profil |
#4 · Zasláno: 21. 7. 2008, 19:39:03
ale lepší by to bylo možná přes PHP a pak vybrat určité id
nemyslím si... a s tím výběrem určitého id jsem to nepochopil, můžeš trochu rozvést? |
||
jansfabik Profil |
#5 · Zasláno: 21. 7. 2008, 21:06:32 · Upravil/a: jansfabik
no třeba nějak takhle:
$res = mysql_query ('SELECT sloupec1,sloupec2 FROM tabulka'); $array = array (); $count = 0; while ($array[] = mysql_fetch_array ($res)) $count ++; $count2 = $count; for ($i = 0; $i < $count2; $i++) { do { $rand = rand (0, $count-1); } while (!array_key_exists ($rand, $array)); $current = $array [$rand]; ... nějaké věci s $current ... unset ($array [$rand]); $count --; } ale nevím, jestli je to rychlejší než v MySQL funkce rand () |
||
Nox Profil |
#6 · Zasláno: 21. 7. 2008, 21:11:03
Má to nějakou přednost kromě toho že to je 16 řádků vs 3 slova?
|
||
daveho Profil |
#7 · Zasláno: 21. 7. 2008, 21:13:09
upresneni:
v tab je treba 100 obrazku oznacenych 1 az 100 s ty se selectem zobrazuji (1-30). (31-60). atd. tudiz vzdy je jako prvni obrazek 1 a hnedle za nim obr 2, 3, 4. No a ja bych chtel, aby pri zobrazovani razeni probihalo nahodile, tzn. jednou bude prvni napr.5 a za nim 8, 56, 48, 2 atd a jindy zase jinak. V podstate aby se ta zobrazeni stran menilo a nebyla vzdy stejne. |
||
nightfish Profil |
#8 · Zasláno: 21. 7. 2008, 21:18:32
daveho
v tom případě si akorát k dotazu, kterým vybíráš obrázky z databáze, přidej to order by rand() akorát nechápu, k čemu je tam to stránkování - protože to vybere náhodně obrázky při každém načtení stránky, takže se může jeden obrázek objevit jak na stránce 1-30, tak i na další stránce po kliknutí na 31-60... |
||
joe Profil |
#9 · Zasláno: 21. 7. 2008, 22:09:55 · Upravil/a: joe
nightfish
Myslel jsem to tak, aby si napsal nějakou svou funkci za pomoci například rand() / mt_rand(); Někam si bude ukládat počet záznamů a potom použije rand(), tím vybere určité id a pak napíše jednoduchý dotaz, kde právě toto id bude vybírat. RAND() v MySQL se mi moc neosvědčilo a zdá se mi pomalé - například 3s, místo 0,0005s je docela rodíl... Ale pokud je v tabulce málo dat, pak je to asi lepší použít. |
||
Časová prodleva: 16 let
|
0