Autor Zpráva
slon_cz
Profil
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
user:
To první je správně. Druhé ne, jelikož původní jednotlivé možnosti nemají stejnou pravděpodobnost.
user
Profil *
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
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
Prave to mam v planu, prptoze bude vice takovychto druhu a nenapada me jak to procentualne udelat :/
Tomášeek
Profil
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
děkuji!

ten priklad s promennymi byl jen priklad, samozrejmne, ze bude jen jedna promenna a v ni se bude menit value

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: