Autor | Zpráva | ||
---|---|---|---|
slon_cz Profil |
#1 · Zasláno: 16. 4. 2017, 20:57:42
Dobrý den, muj dostaz je castecne uz v názvu vlákna
řekněme, že mám rand $drop = rand(0, 100000); nějak me nenpadá, jak co nejefektivněji a s co nejmenší prací udělat podmínky tak, že pokud padne číslo 0-500, zobrazí se $auto, pokud 501-25000 zobrazí se $kolo 25001 - 75000 zobrazí se $dum 75001 - 100000 zobrazí se $kolotoc snad jsem to popsal správně, udělal bych to pomocí if($drop >= 0 AND $drop <= 500){echo $auto} ale to mi neprijde moc efektivni, tedy prijde mi to jako moc prace zbytecne. Existuje neco rychlejsiho? Díky moc |
||
user Profil * |
if($drop > 75000) { echo $kolotoc; } else if($drop > 25000) { echo $dum; } else if($drop > 500) { echo $kolo } else { echo $auto; } $drop = rand(0, 3); switch($drop) { case 0: echo $auto; break; case 1: echo $kolo; break; case 2: echo $dum; break; case 3: echo $kolotoc; break; } |
||
Keeehi Profil |
#3 · Zasláno: 16. 4. 2017, 21:10:53
user:
To první je správně. Druhé ne, jelikož původní jednotlivé možnosti nemají stejnou pravděpodobnost. |
||
user Profil * |
#4 · Zasláno: 16. 4. 2017, 22:54:23
Keeehi:
Pravda, to mi nedoslo... |
||
slon_cz Profil |
user:
Zdravím, děkuji to první by šlo. Ještě mě napadá, že abych to ještě zkrátil, jestli by nějak nešlo, že bych si do mysql databáze uložil nazev | sance auto | 25% kolo | 25% člun | 50% nebo nazev | sance auto | 0-20 000 kolo | 21 000 - 50 000 člun | 50 001 - 100 000 a pokud se vybere cislo napr. 12 000, tak nějakou podminkou vybrat z databáze nazev podle toho, v jakej rozmezi z tech vsech cisel se cislo 12 000 nachází (tedy u nazvu auto) Snad mě chápete, možná to dělám moc komplikovaně, ale nějak mě vůbec nenapadá jak to udělat, protože ono bude více těchto jakoby krabiček a v ní věci s procentuální šancí na zobrazení. Ještě mě napadlo napsat si někam do jiné databáze čísla od 0 do 100 000 a pak z z databáze vybrat cislo od 0 do 20 000 a pokud se v tom nachazi cislo 12000 tak ukaze ten nazev, pokud ne, tak to vezme řadu čísel od 21 000 do 50 000 a porovná zda se v te rade nachazi to potrebne cislo a pokud ne, tak to takhle pokracuje dale. To mi ale přijde moc komplikované :/ |
||
Keeehi Profil |
#6 · Zasláno: 17. 4. 2017, 20:34:13
slon_cz:
Mít to v databázi má smysl, jen když chceš, aby se to dalo upravovat skrz nějaké administrační rozhraní které taky vytvoříš. |
||
slon_cz Profil |
#7 · Zasláno: 19. 4. 2017, 01:12:24
Prave to mam v planu, prptoze bude vice takovychto druhu a nenapada me jak to procentualne udelat :/
|
||
Tomášeek Profil |
#8 · Zasláno: 19. 4. 2017, 09:25:00
slon_cz:
Pokud budu vycházet z toho, co píšeš v #5, tak záleží, co za data půjde z aplikace. Pokud bude někdo zadávat číslo (třeba 15000) je lépe mít ty mezní hodnoty předpočítané pro každou variantu. A samozřejmě ve dvou sloupcích. Tabulka se sloupci nazev (lépe nějaké ID) - od - do
Hodnoty: auto - 0 - 20000 | kolo - 20000 - 50000 , atd
Dotaz bude ... WHERE od > $hodnota AND do <= $hodnota
Pokud bys chtěl do DB ukládat procenta, jak je tn druhý návrh, který ukazuješ, pak ukládat procentuální hodnoty jen jako čísla, bez "%". Výpočet by pak probíhal v aplikaci, nebo bys z aplikace očekával poslání procentuální hodnoty (15[%]). Jen technická, k tomu se ještě nikdo nevyjádřil. Volat podle hodnoty jednu z proměnných $auto, $kolo, $dum, $kolotoc je nesmysl. Proměnnou máš volat pochopitelně jen jednu, jen bude nabývat různých hodnot (a sice stringů auto, kolo, dum, kolotoc ).
|
||
slon_cz Profil |
#9 · Zasláno: 19. 4. 2017, 23:57:38
děkuji!
ten priklad s promennymi byl jen priklad, samozrejmne, ze bude jen jedna promenna a v ni se bude menit value |
||
Časová prodleva: 6 let
|
0