NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 7 - Podmínky v PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Martin Kubíček:13.4.2019 13:32

Ahoj, jsem nejake zaklady PHP uz znam z drivejska, presto jsem si radeji mistni tutorialy dal uplne od zacatku, abych si to osvezil, chci se zeptat, jestli tento kod je aspon trosku v poradku, ci zda-li jsou tam nejake hrubky, pripadne jake,udelal jsem to pomoci switch... diky moc

<?php

$a = $_POST['cislo1'];
$b = $_POST['cislo2'];
$ukon = $_POST['ukon'];

if ($b == 0) {
    echo "Nelze delit nulou !!";
}
else

    switch ($ukon) {
        case '+' :
            echo("Vysledek je " . ($a + $b));
            $vysledek = true;
            break;
        case '-' :
            echo("Vysledek je " . ($a - $b));
            $vysledek = true;
            break;
        case '*' :
            echo("Vysledek je " . ($a * $b));
            $vysledek = true;
            break;
        case '/' :
            echo("Vysledek je " . ($a / $b));
            $vysledek = true;
            break;
        default :
            echo("Zadej cisla");


    }


?>

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Kalkulačka</title>
</head>
<body>
<p>Kalkulacka</p>


<form method="POST" action="kalkulacka.php">
    <label>Cislo 1</label><br />
    <input name="cislo1" type="text" /><br />
    <td>Operace</td>
    <td><select name="ukon">
            <option value="+">+</option>
            <option value="-">-</option>
            <option value="*">*</option>
            <option value="/">/</option>
        </select></td><br />
    <label>Cislo 2</label><br />
    <input name="cislo2" type="text" /><br />
    <input type="submit" value="Vypocitej" />
</form>

</body>
</html>
 
Odpovědět
13.4.2019 13:32
Avatar
Iva.U
Člen
Avatar
Iva.U:23.1.2020 12:05

Skvělá lekce, moc dík.

 
Odpovědět
23.1.2020 12:05
Avatar
František Červeňák:30.7.2020 20:35
<!DOCTYPE html>
<html lang="sk">
<head>
        <meta charset="UTF-8">
        <title>FUNKCIA - "KALKULAČKA"</title>
        <link rel="stylesheet" href="">
</head>
<body>
             <form action='' method='POST' accept-charset='utf-8'>
                <input type='number' name='a'> <input type='number' name='b'>
                <select name='operacia'>
                        <option value='sucet'>+</option>
                        <option value='rozdiel'>-</option>
                        <option value='sucin'>x</option>
                                <option value='podiel'>:</option>
                </select>
                <input type='submit' name='button' value='vypočítaj'>
             </form><br>
</body>
</html>
           <?php //kód na funkciu kalkulačky:
function kalkulacka(){
             $a='';
             $b='';
             $operacia='';
           if (isset($_POST['button']) AND isset($_POST['a']) AND
                 isset($_POST['b']) AND isset($_POST['operacia'])){

                      $a = $_POST['a'];
                      $b = $_POST['b'];
                      $operacia = $_POST['operacia'];

                  if ($a !="" AND $b !="" AND $operacia !="") {

                 switch ($operacia) {
                        case 'sucet':
                                echo $a + $b;
                                break;

                                case 'rozdiel':
                                echo $a - $b;
                                break;

                                case 'sucin':
                                echo  $a * $b;
                                break;

                                case 'podiel':
                                echo  $a / $b;
                                break;

                        default:
                                echo "error";
                                break;
                                                        }

                                                                  }

                  else{
                echo"Zadajte hodnoty do obidvoch políčok";
                           }


                                }
          else{
                echo"Zadajte hodnoty do políčok";
          }

}

//hotová funkcia, ktorá sa vždy automaticky spustí načítaním horeuvedeného scriptu :
kalkulacka();

?>
 
Odpovědět
30.7.2020 20:35
Avatar
František Červeňák:5.8.2020 0:19

ešte s ošetrením, ak by mal by mal byť deliteľ * 0* :

           <?php //kód na funkciu kalkulačky:
function kalkulacka(){
             $a='';
             $b='';
             $operacia='';
           if (isset($_POST['a']) AND
               isset($_POST['b']) AND
               isset($_POST['operacia'])){

                      $a = $_POST['a'];
                      $b = $_POST['b'];
                      $operacia = $_POST['operacia'];

                  if ($a !="" AND $b !="" AND $operacia !="") {

                 switch ($operacia) {
                            case 'sucet':
                                echo $a + $b;
                                break;

                                case 'rozdiel':
                                echo $a - $b;
                                break;

                                case 'sucin':
                                echo  $a * $b;
                                break;

                                case 'podiel':
                                if($b!=0){
                                echo  $a / $b;}
                                else {echo "error - delenie nulou nie je definované";}
                                break;

                                default:
                                echo "error";
                                break;
                                                        }

                                                                  }

                  else{
                echo"Zadajte hodnoty do obidvoch políčok";
                           }


                                }
          else{
                echo"Zadajte hodnoty do políčok";
          }

}

//hotová funkcia, ktorá sa vždy automaticky spustí načítaním horeuvedeného scriptu :
kalkulacka();

?>
 
Odpovědět
5.8.2020 0:19
Avatar
Pavel Kubalík:23.11.2020 15:07

Dobrý den
Tentokrát zavírám lekci o podmínkách s radostí.
Řešení následných příkladů mě bavilo a příklady byly dobré (nikoli lehké).
Dost jsem se poučil (i když téma podmínek pro mne již několik desetiletí není neznámé).
Líbí se mi jak úsporně se podmínky v PHP píší (a asi nejen v PHP).
Děkuji PK

 
Odpovědět
23.11.2020 15:07
Avatar
Jozef Lysík
Člen
Avatar
Odpovídá na Niesomtu Hraskova
Jozef Lysík:19.4.2021 22:33

Druhý riadok v tomto prípade nepatrí podmienke, takže bez ohľadu či je podmienka splnená alebo nie sa druhý riadok vypíše vždy. Ja si blok kódu pre podmienku vždy dávam do {...} hoci keď je tam len jeden riadok tak zátvorky niesu povinné.

 
Odpovědět
19.4.2021 22:33
Avatar
Jaroslav Parma:28.5.2021 10:58

Ahoj všem,
kalkulačku v zadání v této lekci jsem trochu vylepšil o validaci (je to převzaté z další lekce, kde se vytváří kontaktní emailový formulář). Po krátkém trápení s 0 (když jsem zadal 0, tak mi to vyhodilo chybu, protože to vnímalo jako odeslání prázdného formuláře) se mi povedlo kalkulačku zprovoznit. Teprve se učím, tak bych se rád zeptal někoho zkušenějšího, jestli by se můj kód nedal napsat efektivněji.

<?php
        $operace = $_POST['operace'];
        if ($_POST)
            {
                if (isset($_POST['cislo1'], $_POST['cislo2']) && ($_POST['cislo1'] ||
                $_POST['cislo1'] == 0) && ($_POST['cislo2'] || $_POST['cislo2'] == 0))
                {   $a = $_POST['cislo1'];
                    $b = $_POST['cislo2'];
                    if ($operace == 'scitani')
                        {
                        $vysledek = $a + $b;
                        $hlaska = 'Výsledek je: ' . $vysledek;
                        }
                    else if ($operace == 'odcitani')
                        {
                            $vysledek = $a - $b;
                            $hlaska = 'Výsledek je: ' . $vysledek;
                        }
                    else if ($operace == 'nasobeni')
                        {
                            $vysledek =  $a * $b;
                            $hlaska = 'Výsledek je: ' . $vysledek;
                        }
                    else if ($operace = 'deleni')
                        {
                            if ($b == 0)
                                $hlaska = 'Chyba, nulou nelze dělit!';
                            else
                            {
                                $vysledek = $a / $b;
                                $hlaska = 'Výsledek je: ' . $vysledek;
                            }

                        }
                }
                else
                    $hlaska = 'Nezadal jsi všechna čísla.';
            }
        echo($hlaska . '<br />
        <a href="kalkulacka.html">Zpět</a>');
    ?>

\---

 
Odpovědět
28.5.2021 10:58
Avatar
Petr Váchal
Člen
Avatar
Odpovídá na Martin Kubíček
Petr Váchal:17.11.2022 15:08

Switch? Tleskám. Za mě je to úplně na pohodu.

Odpovědět
17.11.2022 15:08
Tolik bezradnosti, a furt se žije. Ej!
Avatar
Odpovídá na Petr Váchal
Martin Kubíček:17.11.2022 21:07

diky, sice pozde a uz jsem se trosku za 3 a pul roku posunul, ale je to usmevne se podivat na nejaky kod,ktery jsem psal, kdyz jsem zacinal brat programovani vazne :) jinak uz se 3 roky a 5 mesicu uspesne zivim jako full stack, ted delam zejmena backend (a zvladnu uz i o neco tezsi funkce :D ), ale i tak me potesilo doceneni meho hezky napsaneho switche, diky moc :)

 
Odpovědět
17.11.2022 21:07
Avatar
Petr Váchal
Člen
Avatar
Odpovídá na Martin Kubíček
Petr Váchal:17.11.2022 21:08

Není vůbec zač :)
Ať se daří, ať to kódí!

Odpovědět
17.11.2022 21:08
Tolik bezradnosti, a furt se žije. Ej!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 97.