Autor Zpráva
swetko
Profil
Dobrý deň,
mám formulár(v PHP) v ktorom sa zaškrtáva ktorá z funkcií sa má vykonať.

príklad:
"if" zaškrtnem možnosť 1 - v zozname mien sa vyhľadajú mená ktoré obsahujú -a-
"if" zaškrtnem možnosť 2 - vypíšu sa mená s poradovým číslom 4-6
"if" zaškrtnem možnosť 3 - zoradia sa priezviská podľa abecedy
.
.
.

No a ja by som potreboval aby keď niekto zaškrtne viac ako jednu možnosť sa tie funkcie skombinovali. Napríklad zaškrtne možnosť 1 a 3 tak sa mu vypíšu priezviská podľa abecedy, ale iba tých ľudí ktorý majú v mene písmeno a.

Možností na zašktrnutie je napríklad 10.

Ako to urobiť aby sa dalo združiť viacero podmienok? (podľa množstva zaškrtnutých možností)

Ďakujem.
mckay
Profil
swetko:
Jestli je to checkbox, dá se to kontrolovat tak, že otestuješ, jestli to existuje - tedy:
if(isset($_POST["prvni"], $_POST["druhy"])){
#neco se stane.
}
swetko
Profil
Mám:

(kód možno nie je 100% správne, je to len príklad)
if (isset($prvy)){
      if($vysledok_hladania){
      echo $meno;
      }
}

if (isset($druhy)){
      if($cislo<10){
      echo $riadok;
      }
}


A ja by som chcel aby keď niekto zaškrtne obidve možnosti sa podmienky spojili a vykoná sa každý $riadok ktorý má menšie číslo ako 10 a zároveň obsahuje $meno v ktorom bolo nájdené písmeno z $vysledok_hľadania.
Alphard
Profil
A ta data taháte z databáze?
swetko
Profil
Údaje ťahám listovaním txt súboru kde v každom riadku je zoznam údajov:
1|meno|velkost_chodidla|objem_motora a pod.
Alphard
Profil
swetko:
Chtěl jsem řešení naznačit na postupném sestavování databázového dotazu, ale to je jedno.
Samotné spojení podmínek je možné třeba pomocí and nebo or, např.
if ($jedna and $dva) // když platí zároveň jedna i dva

Ale počet kombinací vašich podmínek by byl příliš vysoký, takže je potřeba řešit to postupně.

Vyberte si nějaké logické pořadí podmínek a postupně upravujte výsledek, viděl bych to asi takhle:
1. Nejjednodušší bude kontrolovat pořadové číslo, takže to dejte jako první podmínku. Je-li zadáno, vyber řádky s požadovaným číslem, pokud ne, vyber všechny. Výsledek tohoto řádku předej dál.
2. Jesli je nastaven filtr, smaž veškeré řádky, které neobsahují "a"
3. Pokud je nastavené řazení, seřaď výsledek.

Pak v závislosti na okolnostech lze některé podmínky spojit. Třeba se nabízí dát dohromady 1. a 2. krok.
1. Vem řádky, které začínají daným číslem a obsahuji ve jméně "a".
2. Seřaď výsledek podle zadání.
swetko
Profil
Čiže neexistuje "jednoriadkový" zápis :), niečo ako
if($jednna & or $dva & or $tri){...}
. A kedže takýchto podmienok je cca 10, bude to asi možné len vyselektovaním niektorých najčastejších kombinácií a ich vyriešením.
Alphard
Profil
swetko:
Čiže neexistuje "jednoriadkový" zápis :), niečo ako
Existuje, ale spočítejte si sám, kolik máte možností :-)
if(($jedna and $tri) or $sedm)
if($ctyri xor $osm)
if($jedna and !$dve and $tri)

Takových možností budou stovky.
swetko
Profil
Áno to mi je jasné, len som chcel vedieť či neexistuje na to v PHP nejaké riešenie.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0