Autor | Zpráva | ||
---|---|---|---|
ReVolt Profil |
#1 · Zasláno: 16. 12. 2010, 14:46:23 · Upravil/a: ReVolt
Nazdar, potřeboval bych na stránky ke komentářům a do kontaktního formuláře antispam, nechci nějakou už vytvořenou apikaci a tak mě napadlo že to udělám přes databázi, ale nevím jak to udělat, aby z několika číselných kombinací, které vložím do připravené tabulky, skript náhodně jednu z nich vybral a zobrazil.
|
||
jenikkozak Profil |
#2 · Zasláno: 16. 12. 2010, 14:50:36
SELECT sloupec FROM tabulka WHERE podminky ORDER BY rand() LIMIT 1 |
||
blaaablaaa Profil |
#3 · Zasláno: 16. 12. 2010, 14:51:00 · Upravil/a: blaaablaaa
SELECT X FROM tbl ORDER BY RAND() LIMIT 1
//edit: pozde ;) |
||
Chamurappi Profil |
#4 · Zasláno: 16. 12. 2010, 14:54:11
Reaguji na ReVolta:
Pokud neválčíš s robotem zacíleným vyloženě na tvé komentáře, tak nepotřebuješ náhodně volit číselnou kombinaci. Antispam této diskuse se již několik let ptá na číslo dvacet čtyři a nevzpomínám si, že by se do něj nějaký spambot trefil. |
||
__construct Profil |
#5 · Zasláno: 16. 12. 2010, 15:07:24
|
||
blaaablaaa Profil |
#6 · Zasláno: 16. 12. 2010, 15:15:55
__construct:
100 000 zaznamu (ID AI, varchar s md5) v jedne myisam tabulce: SELECT * FROM `tmp_tbl` ORDER BY RAND( ) LIMIT 1 Dotaz zabral 0.0677 sekund Takze to v tomto pripade nevadi ;) |
||
blaaablaaa Profil |
#7 · Zasláno: 16. 12. 2010, 15:16:46
Ale jinak souhlasim s Chamurappim, ja to (zatim uspesne) pouzivam s predvyplnenim pomoci JS.
|
||
__construct Profil |
#8 · Zasláno: 16. 12. 2010, 15:32:52 · Upravil/a: __construct
<mimo-téma>
blaaablaaa: Skús si to dať do PHP skriptu - spravil som si test s ORDER BY RAND() LIMIT 1; a potom druhým spôsobom:
$r = mysql_query("SELECT count(*) FROM tabulka"); $d = mysql_fetch_row($r); $rand = mt_rand(0,$d[0] - 1); $r = mysql_query("SELECT niečo FROM tabulka LIMIT $rand, 1"); $d = mysql_fetch_row($r); Druhý spôsob mal čas polovičný pri tabuľke s cca. 300k záznamov. </mimo-téma> A aby mi tento komentár nezmazali tak sa tiež prikláňam k riešeniu s JS - mne pomáha úspešne |
||
ReVolt Profil |
#9 · Zasláno: 16. 12. 2010, 16:51:30 · Upravil/a: ReVolt
Díky všem, všechno ozkouším a uvidím co bude nejlepší
EDIT: použil jsem metodu náhodného výběru z tabulky, příkaz, který napsali jenikkozak a blaaablaaa funguje jak má :) ještě jednou vám všem moc děkuju |
||
Časová prodleva: 15 let
|
0