Vloženie dát zo stránky do databázy

Na tejto prednáške si spravíme formulár, cez ktorý budeme vkladať nové záznamy do databázy do našej tabuľky users. Ako už vieme, formulár je najpoužívanejšia cesta, ako používateľ môže zadať nejaké dáta webstránke. Toto by sme už mali zvládnuť, takže si poďme rozobrať problém ako programátori a rozdeliť si ho na menšie časti.

 

Najprv by sme mali spraviť formulár, ktorý bude obsahovať štyri textové inputy, ktoré budú reprezentovať hodnoty, resp. stĺpce v našej tabuľke users. Podobne ako pri odosielaní mailu, by sme po odoslaní (submit) formulára mali tieto dáta skontrolovať, či vyhovujú našim požiadavkam (číslo, dĺžka stringu a pod.). Ak vyhovujú, mali by sme sa pripojiť na databázu a vložiť nový záznam do tabuľky so zadanými dátami a následne vypísať používateľovi hlášku, že sa dáta úspešne odoslali. V prípade zle zadaných dát musíme tieto dáta načítať do formulára (ako value inputov) a zobraziť hlášku, že dáta nie sú správne zadané.

 

Poďme teda na to, najprv si skopírujeme kód formulára zo sekcie kontakt do sekcie domov (index.php) do hornej časti, pridáme aj nadpisy, aby sme v tom nemali bordel a upravíme položky formulára podľa stĺpcov v databáze, mohlo by to vyzerať takto:

 


index.php (obsah hlavného divu):

<h1>Domov</h1>
<div class="line"></div>

<h2>Pridanie nového používateľa</h2>

<!-- Formular pre vlozenie noveho usera -->
<form class="contact_form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
    <label for="user_name">Meno</label>
    <input type="text" name="user_name" id="user_name" value="<?php echo $user_name;?>">

    <label for="user_surname">Priezvisko</label>
    <input type="text" name="user_surname" id="user_surname" value="<?php echo $user_surname;?>">

    <label for="age">Vek</label>
    <input type="text" name="age" id="age" value="<?php echo $age;?>">

    <label for="role">Rola</label>
    <input type="text" name="role" id="role" value="<?php echo $role;?>">

    <input type="submit" name="user_form" value="Odoslať">
</form>

 


Ako vidíte, naša stránka zatiaľ obsahuje iba formulár, zvyšný kód sme zakomentovali, aby nás zbytočne nerozptyľoval a nezavadzal. Poďme na ďalší krok. Otestujeme, či bol formulár odoslaný, načítame si parametre, ktoré nám prišli a skontrolujeme, či vyhovujú našim požiadavkam. Požiadavky by v tomto prípade mali predstavovať dátové typy a obmedzenia stĺpcov v DB, pretože tam budeme dáta vkladať. Na otestovanie použijeme jednoduché regulárne výrazy, nebudeme sa týmto zbytočne zaoberať to podrobna, nie je to teraz hlavná časť programu. Ak dáta spĺňajú predpis stĺpcov, malo by byť všetko v poriadku. V prípade mena a priezviska by to nemal byť string dlhší ako 50 znakov (lebo varchar o dĺžke 50), v prípade veku by to malo byť číslo integer a v prípade role by to mal byť string nie dlhší ako 20 znakov. Táto časť by mohla vyzerať takto:

 


index.php (pred formulár):

<h2>Pridanie nového používateľa</h2>

<?php
    //ZACHYTENIE PARAMETROV

    if($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['user_form']){
        $user_name = $_POST['user_name'];
        $user_surname = $_POST['user_surname'];
        $age = $_POST['age'];
        $role = $_POST['role'];

        if(preg_match('#^.{0,50}$#', $user_name) &&
           preg_match('#^.{1,50}$#', $user_surname) &&
           preg_match('#^.{0,20}$#', $role) &&
           preg_match('#^[0-9]{0,3}$#', $age)){
            
            //KOREKTNE DATA
            echo '<p class="success">Položka bola uložená.</p>';

            //ulozenie do DB

            //vycistenie poloziek
            $user_name = '';
            $user_surname = '';
            $age = '';
            $role = '';
        }else{
            //CHYBNE DATA

            echo '<p class="error">Nová položka nebola uložená - nesprávne vyplnené dáta vo formulári. </p>';

    }
?>

 


Ako vidíte v kóde, po skontrolovaní, či bol formulár odoslaný (už skôr sme zmenili jeho name z contact_form na user_form) sme zachytili parametre. Následne sme vytvorili podmienku, kde všetky štyri parametre musia spĺňať nejaký predpis podľa regulárnych výrazov. Vo varcharových položkách kontrolujeme iba dĺžku (ako vieme bodka reprezentuje ľubovoľný znak a rozsah v zátvorke povolenú dĺžku hodnoty) a pri veku kontrolujeme, či to obsahuje iba čísla a dĺžku, ktorá by nemala presiahnuť tri číslice. Všimnite si, že len pri user_surname máme, že to musí obsahovať aspoň jeden znak, pretože jedine táto položka je v našej tabuľke ako NOT NULL, takže musí niečo obsahovať. Ak sú všetky predpisy splnené (podmienka je splnená), tak bude nasledovať uloženie do databázy a vyčistenie parametrov (vymazanie formulára), pretože ak sa dáta úspešne odoslali, nie je nutné zachovať predchádzajúce hodnoty. V prípade zle vyplneného formulára zobrazíme hlášku a taktiež ostanú hodnoty vo formulári zachované.

 

Skúste si obidva prípady – aj správne vyplnené dáta (zadané aspoň user_surname jedným znakom) aj nesprávne (nezadané číslo, iné dĺžky a podobne...), aby ste videli, že to skutočne funguje a hlášky sa vypisujú správne. Teraz nám ostáva už len dokonať dielo a to je zabezpečiť uloženie do databázy. Ako vieme, dáta vkladáme príkazom INSERT INTO. My si ho postupne vyskladáme podľa toho, či naše parametre obsahujú alebo neobsahujú hodnotu. V prípade, že parameter (a teda hodnota v danom stĺpci) nebola zadaná, budeme vkladať NULL. Aby to bolo kompletné, na začiatok kódu si vložíme pripojenie do databázy a na konci si odkomentujeme výpis tabuľky so všetkými používateľmi. Takto po úspešnom vložení hneď uvidíme našu položku v zozname používateľov natiahnutom z databázy. Celý kód by mohol teda vyzerať takto:

 


index.php:

<div class="main-content right">
        <h1>Domov</h1>
        <div class="line"></div>

        <h2>Pridanie nového používateľa</h2>

        <?php
            //PRIPOJENIE DO DB
            $server_name = "localhost";
            $db_user_name = "root";
            $password = "root";
            $dbname = "zapr_db_1";

            $connection = mysqli_connect($server_name, $db_user_name, $password, $dbname);

            if (!$connection) {
                echo 'Spojenie s databázou sa nepodarilo nadviazať.';
            }else{
                // echo 'Spojenie s databázou sa podarilo úspešne nadviazať.';
            }

            //ZACHYTENIE PARAMETROV

            if($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['user_form']){
                $user_name = $_POST['user_name'];
                $user_surname = $_POST['user_surname'];
                $age = $_POST['age'];
                $role = $_POST['role'];

                if(preg_match('#^.{0,50}$#', $user_name) &&
                   preg_match('#^.{1,50}$#', $user_surname) &&
                   preg_match('#^.{0,20}$#', $role) &&
                   preg_match('#^[0-9]{0,3}$#', $age)){

                    //KOREKTNE DATA

                    //ulozenie do DB
                    $sql_query = "INSERT INTO users (user_name, user_surname, age, role) VALUES (";
                    //otestovanie ci prisli parametre, inak vkladame NULL
                    if($user_name){
                        $sql_query .= "'".$user_name."',";
                    }else{
                        $sql_query .= "NULL,";
                    }

                    $sql_query .= "'".$user_surname."',";
                    
                    if($age){
                        $sql_query .= $age.",";
                    }else{
                        $sql_query .= "NULL,";
                    }

                    if($role){
                        $sql_query .= "'".$role."')";
                    }else{
                        $sql_query .= "NULL)";
                    }

                    $result = mysqli_query($connection, $sql_query);

                    if($result){
                        echo '<p class="success">Položka bola úspešne uložená.</p>';
                    }else{
                        echo '<p class="error">Pri ukladaní dát do databzy sa vyskytla chyba.</p>';
                    }

                    //vycistenie poloziek
                    $user_name = '';
                    $user_surname = '';
                    $age = '';
                    $role = '';

                }else{
                    //CHYBNE DATA

                    echo '<p class="error">Nová položka nebola uložená - nesprávne vyplnené dáta vo formulári. </p>';
                }

            }
        ?>

        <!-- Formular pre vlozenie noveho usera -->
        <form class="contact_form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
            <label for="user_name">Meno</label>
            <input type="text" name="user_name" id="user_name" value="<?php echo $user_name;?>">

            <label for="user_surname">Priezvisko</label>
            <input type="text" name="user_surname" id="user_surname" value="<?php echo $user_surname;?>">

            <label for="age">Vek</label>
            <input type="text" name="age" id="age" value="<?php echo $age;?>">

            <label for="role">Rola</label>
            <input type="text" name="role" id="role" value="<?php echo $role;?>">

            <input type="submit" name="user_form" value="Odoslať">
        </form>


        <?php

            $sql_query = "SELECT * FROM users";
            $result = mysqli_query($connection, $sql_query);

            if (mysqli_num_rows($result) > 0) {
                $data = mysqli_fetch_all($result, MYSQLI_ASSOC);

                // echo '<br><br><pre>';
                //     print_r($data);
                // echo '</pre>';
                echo '<h2>Zoznam používateľov</h2>';

                echo '<table class="persons">';
                    echo '<tr>';
                        echo '<th>ID</th>';
                        echo '<th>Meno</th>';
                        echo '<th>Priezvisko</th>';
                        echo '<th>Vek</th>';
                        echo '<th>Rola</th>';
                    echo '</tr>';

                    for($i=0; $i<count($data); $i++){
                        echo '<tr>';
                            foreach($data[$i] as $index => $value){
                                echo '<td>'.$value.'</td>';
                            }

                        echo '</tr>';
                    }

                echo '</table>';

            } else {
                echo "0 results were selected.";
            }

            echo '<br><br>';

            mysqli_close($connection);
        ?>
    </div>

    <div class="clear"></div>
</div>

 


Ako vidíte, na začiatku sme si vytvorili začiatok nášho príkazu INSERT INTO a následne si prechádzame všetky parametre. Podľa toho, či nám prišla ich hodnota, tak do stringu priliepame túto hodnotu, ak neprišla, tak tam vkladáme NULL. Všimnite si, že vkladáme pred hodnoty aj jednorité úvodzovky, pretože to je varchar (je to takto korektnejšie) a nakoniec sme museli aj zátvorku uzatvoriť. Ak si to chcete odskúšať, tak si skúste samotné vykonanie query (mysqli_query) zakomentovať a dajte si iba vypísať obsah premennej sql_query, aby ste videli, aký príkaz posielame.

 

Následne podľa odpovede vykonania query vypisujeme hlášku o úspešnom alebo neúspešnom uložení. Pri vykonaní insertu nám DB vráti hodnotu 1 (true) v prípade úspešného uloženia. Všimnite si ešte jednu vec, že načítanie dát z tabuľky sme dali až za vkladanie. Ak by sme mali najprv načítanie dát a potom vkladanie (načítanie sme predtým mali na začiatku kódu stránky), tak by sme po uložení museli ešte stránku refrešnúť, pretože by sa uloženie nového záznamu uskutočnilo až po načítaní dát z tabuľky, takže v našej tabuľke by sme nevideli už novovložený záznam. Takto je to optimálne, netreba žiadny refreš.

 

Celý náš kód sa skladá teda zo štyroch častí. Prvá je pripojenie do DB (museli sme premenovať premennú user_name na db_user_name, pretože user_name máme použitú pri parametri z formulára), druhá je zachytenie parametrov a vyhodnotenie odoslania formulára. Tretia je samotný formulár a posledná je načítanie dát z databázy a zobrazenie do tabuľky. Aj keď je kód na naše pomery celkom dlhý, celému kódu by ste mali rozumieť, všetko toto sme sa už naučili a spojili sme to logicky dokopy a ako vidíte na stránke, vyzerá to ako vloženie dát na naozajstnej stránke. Šikovní sme že? :)

 

Presne s týmto sa stretávate denne, ak sa niekde registrujete. Vypĺňate formuláre (dáta), kliknete na registrovať a dáta sa uložia do databázy. Alebo ak niečo komentujete a podobne...skrátka ako sme si už viackrát povedali, všetko čo vkladáte (vpisujete) a následne sa to niekde zobrazuje (status na FB, komentár, registrácia...) sa vo väčšine týmto spôsobom ukladá do databázy.

Máte nejakú otázku alebo Vám niečo nie je jasné? Napíšte nám na info@zacni-programovat.sk a poradíme!

Obsah súborov projektu po tejto prednáške

1 - footer.php

<div class="footer">
</div>

2 - fotogaleria.php

<!DOCTYPE html>

<html lang="sk">
<head>
<title>Vitajte na našej prvej skutočnej webstránke!</title>

<meta charset=“UTF-8“>
<meta name="description" content="Ponúkame vám lekcie jazykov HTML, CSS, PHP a mnoho ďalších užitočných rád pri programovaní">
<meta name="keywords" content="programovanie, html, css, php, webstranka, web, tvorba webu, web developer, ucenie programovania, ako programovat">

<link rel="stylesheet" type="text/css" href="global.css">
</head>

<body>
<?php $actual_page = "fotogaleria";?>
<div class="main">

<?php include "header.php";?>

<div class="content">

<?php include "menu.php";?>

<div id="gallery-content" class="main-content right">
<h1>Fotogaléria</h1>
<div class="line"></div>

<?php

$pictures = array();

for($i = 0; $i < 30; $i++){
$pictures[] = 'images/placeholder.jpg';
}

//zadefinovanie maximalneho poctu pre jednu stranku a nacitanie parametra (urcenie aktualnej stranky)
$countPerPage = 12;
if($_GET['page']){
$page = $_GET['page'];
}else{
$page = 1;
}

//vypocet od ktorej po ktoru fotku zobrazujeme galeriu
$start = ($page-1)*$countPerPage;
$end = $page*$countPerPage;

echo '<ul id="gallery">';
for($i = $start; $i < $end; $i++){

if($pictures[$i]){
echo '<li class="left';

if(($i+1)%3){
echo ' photo-margin';
}

echo '">';

echo '<img src="'.$pictures[$i].'">';

echo '<a target="_blank" href="'.$pictures[$i].'" class="over_div">';
echo '<span>Kliknite pre zväčšenie!</span>';
echo '</a>';

echo '</li>';
}
}
echo '</ul>';

//cyklus, ktory nam vypise dostatocny pocet odkazov pre jednotlive stranky
$pageLink = 1;
$photosCount = count($pictures);

echo '<ul class="pagination">';
while($photosCount > 0){

echo '<li><a ';

if($pageLink == $page){
echo ' class="active" ';
}

echo 'href="fotogaleria.php?page='.$pageLink.'">'.$pageLink.'</a>';
echo '</li>';
$photosCount = $photosCount - $countPerPage;
$pageLink++;
}
echo '</ul>';

?>
</div>

<div class="clear"></div>
</div>

<?php include "footer.php";?>
</div>
</body>
</html>

3 - global.css

BODY{
margin: 0;
background-color: #dee8e7;
font-family: Arial;
}

H1{
color: #5b6b78;
margin-bottom: 10px;
}

.line{
height: 3px;
border-top: 1px dotted #5b6b78;
border-bottom: 1px dotted #5b6b78;
margin-bottom: 25px;
}

.main{
background-color: #f6f7f1;
width: 900px;
margin: auto;
margin-top: 20px;
margin-bottom: 20px;
}

.header{
border-bottom: 1px solid #7d8079;
height: 150px;
}

.header-inner1{
}

.header-inner2{
}

.content{
}

.footer{
border-top: 1px solid #7d8079;
height: 200px;
}

.half-width{
width: 50%;
}

.full-height{
height: 100%;
}

.left{
float: left;
}

.right{
float: right;
}

.clear{
clear: both;
}

/**********MENU***********/
.sidebar{
width: 200px;
height: 400px;
}

.sidebar UL{
list-style-type: none;
padding: 0;
margin: 0;
}

.sidebar UL LI{
position: relative;
}

.sidebar UL LI A, .sidebar UL LI:HOVER .submenu A{
display: block;
padding: 15px 0px 15px 35px;
border-bottom: 1px solid #7d8079;
color: #7d8079;
text-decoration: none;
text-transform: uppercase;
}

.sidebar UL LI A.active{
color: #f5f7f4;
background-color: #f96b81;
}

.sidebar UL LI:HOVER A, .sidebar UL LI .submenu LI:HOVER A{
background-color: #5b6b78;
color: #d6e3e9;
}

.main-content{
width: calc(100% - 241px);
min-height: 700px;
border-left: 1px solid #7d8079;
padding-left: 20px;
padding-right: 20px;
}

.submenu{
display: none;
border: 2px solid #7d8079;
position: absolute;
top: -1px;
left: 201px;
width: 200px;
background-color: #FFFFFF;
}

.sidebar UL LI:HOVER .submenu{
display: block;
}

.sidebar UL LI:HOVER .submenu A{
background-color: #FFFFFF;
}

.main-content{
width: calc(100% - 241px);
min-height: 700px;
border-left: 1px solid #7d8079;
padding-left: 20px;
padding-right: 20px;
}

/**********GALERIA***********/
/**********GALERIA***********/
#gallery{
display: inline-block;
width: 100%;
list-style-type: none;
margin: 0;
padding: 0;
}

#gallery LI{
position: relative;
height: 133px;
margin-bottom: 10px;
}

#gallery LI IMG{
width: 213px;
height: 133px;
}

.photo-margin{
margin-right: 10px;
}

#gallery A{
display: none;
}

#gallery LI:HOVER A{
display: block;
}

#gallery LI:HOVER{
outline: 2px solid #7d8079;
}

#gallery A{
text-decoration: none;
position: absolute;
background-color: grey;
opacity: 0.4;
height: 100%;
width: 100%;
top: 0px;
}

#gallery A SPAN{
position: relative;
top: 100px;
color: #FFFFFF;
font-weight: bold;
}

/**********PERSONS***********/
.persons{
width: 100%;
table-layout: fixed;
font-family: Arial;
}

.persons, .persons TH, .persons TD{
border: 1px solid #D9E4E6;
}

.persons TH, .persons TD{
padding: 15px;
}

.persons TH{
background-color: #167F92;
color: #FFFFFF;
font-weight: normal;
text-transform: uppercase;
}

.persons TR:nth-child(odd){
background-color: #D9E4E6;
}

.persons TR{
color: #024457;
background-color: #FFFFFF;
}

.persons TD{
font-size: 14px;
}

.persons TR:HOVER{
color: #f5f7f4;
background-color: #f96b81;
cursor: pointer;
}

/**********PERSONS***********/
.contact_form{
padding: 20px;
border: 1px solid #ebebeb;
background-color: white;
font-family: Arial;
font-size: 14px;
color: #455560;
text-transform: uppercase;
text-align: center;
}

.contact_form INPUT, .contact_form TEXTAREA, .contact_form LABEL{
display: block;
width: 100%;
}

.contact_form LABEL{
margin-bottom: 5px;
text-align: left;
}

.contact_form INPUT, .contact_form TEXTAREA{
height: 30px;
border: 1px solid #bababa;
margin-bottom: 30px;
}

.contact_form TEXTAREA{
min-height: 100px;
min-width: 100%;
max-width: 100%;
}

.contact_form INPUT[type="submit"]{
display: inline;
width: 200px;
height: 40px;
background-color: #7bc143;
border: 1px solid #6fae3c;
font-size: 16px;
color: #FFFFFF;
text-transform: uppercase;
}

.contact_form INPUT[type="submit"]:HOVER{
cursor: pointer;
background-color: #42aa44;
}

.success, .error{
border: 1px solid;
margin: 10px 0px;
padding:15px 10px 15px 10px;
}

.success {
color: #4F8A10;
background-color: #DFF2BF;
}

.error {
color: #D8000C;
background-color: #FFBABA;
}
/**********PAGINATION***********/
#gallery-content{
text-align: center;
}

ul.pagination {
display: inline-block;
padding: 0;
margin: 10px 0px 20px 0px;
}

ul.pagination li {
display: inline;
}

ul.pagination li a {
color: black;
padding: 8px 16px;
text-decoration: none;
border: 1px solid #ddd;
}

ul.pagination li a.active {
background-color: #4CAF50;
color: white;
}

ul.pagination li a:hover{
background-color: #ddd;
}

.map{
margin: 30px 0px;
text-align: center;
padding: 25px 0px;
background-color: #FFFFFF;
}

4 - header.php

<div class="header">
<div class="header-inner1 full-height half-width left"></div>
<div class="header-inner2 full-height half-width left"></div>
</div>

5 - index.php

<!DOCTYPE html>

<html lang="sk">
<head>
<title>Vitajte na našej prvej skutočnej webstránke!</title>

<meta charset=“UTF-8“>
<meta name="description" content="Ponúkame vám lekcie jazykov HTML, CSS, PHP a mnoho ďalších užitočných rád pri programovaní">
<meta name="keywords" content="programovanie, html, css, php, webstranka, web, tvorba webu, web developer, ucenie programovania, ako programovat">

<link rel="stylesheet" type="text/css" href="global.css">
</head>

<body>
<?php $actual_page = "index";?>
<div class="main">

<?php include "header.php";?>

<div class="content">

<?php include "menu.php";?>

<div class="main-content right">
<h1>Domov</h1>
<div class="line"></div>

<h2>Pridanie nového používateľa</h2>

<?php
//PRIPOJENIE DO DB
$server_name = "localhost";
$db_user_name = "root";
$password = "root";
$dbname = "zapr_db_1";

$connection = mysqli_connect($server_name, $db_user_name, $password, $dbname);

if (!$connection) {
echo 'Spojenie s databázou sa nepodarilo nadviazať.';
}else{
// echo 'Spojenie s databázou sa podarilo úspešne nadviazať.';
}

//ZACHYTENIE PARAMETROV

if($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['user_form']){
$user_name = $_POST['user_name'];
$user_surname = $_POST['user_surname'];
$age = $_POST['age'];
$role = $_POST['role'];

if(preg_match('#^.{0,50}$#', $user_name) &&
preg_match('#^.{1,50}$#', $user_surname) &&
preg_match('#^.{0,20}$#', $role) &&
preg_match('#^[0-9]{0,3}$#', $age)){

//KOREKTNE DATA

//ulozenie do DB
$sql_query = "INSERT INTO users (user_name, user_surname, age, role) VALUES (";
//otestovanie ci prisli parametre, inak vkladame NULL
if($user_name){
$sql_query .= "'".$user_name."',";
}else{
$sql_query .= "NULL,";
}

$sql_query .= "'".$user_surname."',";

if($age){
$sql_query .= $age.",";
}else{
$sql_query .= "NULL,";
}

if($role){
$sql_query .= "'".$role."')";
}else{
$sql_query .= "NULL)";
}

$result = mysqli_query($connection, $sql_query);

if($result){
echo '<p class="success">Položka bola úspešne uložená.</p>';
}else{
echo '<p class="error">Pri ukladaní dát do databzy sa vyskytla chyba.</p>';
}

//vycistenie poloziek
$user_name = '';
$user_surname = '';
$age = '';
$role = '';

}else{
//CHYBNE DATA

echo '<p class="error">Nová položka nebola uložená - nesprávne vyplnené dáta vo formulári. </p>';
}

}
?>

<!-- Formular pre vlozenie noveho usera -->
<form class="contact_form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
<label for="user_name">Meno</label>
<input type="text" name="user_name" id="user_name" value="<?php echo $user_name;?>">

<label for="user_surname">Priezvisko</label>
<input type="text" name="user_surname" id="user_surname" value="<?php echo $user_surname;?>">

<label for="age">Vek</label>
<input type="text" name="age" id="age" value="<?php echo $age;?>">

<label for="role">Rola</label>
<input type="text" name="role" id="role" value="<?php echo $role;?>">

<input type="submit" name="user_form" value="Odoslať">
</form>


<?php

$sql_query = "SELECT * FROM users";
$result = mysqli_query($connection, $sql_query);

if (mysqli_num_rows($result) > 0) {
$data = mysqli_fetch_all($result, MYSQLI_ASSOC);

// echo '<br><br><pre>';
// print_r($data);
// echo '</pre>';
echo '<h2>Zoznam používateľov</h2>';

echo '<table class="persons">';
echo '<tr>';
echo '<th>ID</th>';
echo '<th>Meno</th>';
echo '<th>Priezvisko</th>';
echo '<th>Vek</th>';
echo '<th>Rola</th>';
echo '</tr>';

for($i=0; $i<count($data); $i++){
echo '<tr>';
foreach($data[$i] as $index => $value){
echo '<td>'.$value.'</td>';
}

echo '</tr>';
}

echo '</table>';

} else {
echo "0 results were selected.";
}

echo '<br><br>';

mysqli_close($connection);
?>
</div>

<div class="clear"></div>
</div>

<?php include "footer.php";?>
</div>
</body>
</html>

6 - kontakt.php

<!DOCTYPE html>

<html lang="sk">
<head>
<title>Vitajte na našej prvej skutočnej webstránke!</title>

<meta charset=“UTF-8“>
<meta name="description" content="Ponúkame vám lekcie jazykov HTML, CSS, PHP a mnoho ďalších užitočných rád pri programovaní">
<meta name="keywords" content="programovanie, html, css, php, webstranka, web, tvorba webu, web developer, ucenie programovania, ako programovat">

<link rel="stylesheet" type="text/css" href="global.css">
</head>

<body>
<?php $actual_page = "kontakt";?>
<div class="main">

<?php include "header.php";?>

<div class="content">

<?php include "menu.php";?>

<div class="main-content right">
<h1>Kontakt</h1>
<div class="line"></div>

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['contact_form']){
if(!preg_match('#^[a-zA-Z0-9]{5,10}$#', $_POST['name']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
echo '<p class="error">Zadajte prosim korektne udaje</p>';

//naplnenie formulara
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
}else{
//odoslanie emailu
echo '<p class="success">Vasa sprava bola uspesne odoslana.</p>';

$name = '';
$email = '';
$subject = '';
$message = '';
}

}

?>

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" class="contact_form">
<label for="email">Meno a priezvisko</label>
<input type="text" name="name" id="name" value="<?php echo $name;?>"><br><br>

<label for="email">Email</label>
<input type="text" name="email" id="email" value="<?php echo $email;?>"><br><br>

<label for="subject">Predmet</label>
<input type="text" name="subject" id="subject" value="<?php echo $subject;?>"><br><br>

<label for="message">Správa</label>
<textarea name="message" id="message" placeholder="Zadajte text spravy..."><?php echo $message;?></textarea><br><br>

<input type="submit" name="contact_form" value="Odoslat">
</form>

<div class="map">
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d84199.38373426767!2d19.06093170408453!3d48.73928892777478!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47153de36e8ad42f%3A0xf8223f8a0b8b9032!2sBansk%C3%A1+Bystrica!5e0!3m2!1ssk!2ssk!4v1465151393672" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
</div>
</div>

<div class="clear"></div>
</div>

<?php include "footer.php";?>
</div>
</body>
</html>

7 - menu.php

<div class="sidebar left">
<ul>
<li><a class="<?php if($actual_page == "index"){echo 'active';}?>" href="index.php">Domov</a></li>
<li><a class="<?php if($actual_page == "o-nas"){echo 'active';}?>" href="o-nas.php">O nás</a></li>
<li><a class="<?php if($actual_page == "fotogaleria"){echo 'active';}?>" href="fotogaleria.php">Fotogaléria</a></li>
<li>
<a class="<?php if($actual_page == "kontakt"){echo 'active';}?>" href="kontakt.php">Kontakt</a>

<ul class="submenu">
<li><a href="kontakt.php">Kontakt</a></li>
<li><a href="kontakt.php">Kontakt</a></li>
</ul>

</li>
</ul>
</div>

8 - o-nas.php

<!DOCTYPE html>

<html lang="sk">
<head>
<title>Vitajte na našej prvej skutočnej webstránke!</title>

<meta charset=“UTF-8“>
<meta name="description" content="Ponúkame vám lekcie jazykov HTML, CSS, PHP a mnoho ďalších užitočných rád pri programovaní">
<meta name="keywords" content="programovanie, html, css, php, webstranka, web, tvorba webu, web developer, ucenie programovania, ako programovat">

<link rel="stylesheet" type="text/css" href="global.css">
</head>

<body>
<?php $actual_page = "o-nas";?>
<div class="main">

<?php include "header.php";?>

<div class="content">

<?php include "menu.php";?>

<div class="main-content right">
<h1>O nás</h1>
<div class="line"></div>

<?php
$person_1 = array('Raťafák', 'Plachta', 'plachtos@mail.sk','0903 123 123');
$person_2 = array('Od kuka', 'do kuka', 'kuko@mail.sk','0903 123 123');
$person_3 = array('Joey', 'Tribbiani', 'ako.sa.mas@mail.sk','0903 123 123');
$person_4 = array('Charlie', 'Harper', 'hooker@mail.sk','0903 123 123');
$person_5 = array('Chruno', 'Moysey', 'abstinent@mail.sk','0903 123 123');

$pole = array($person_1, $person_2, $person_3, $person_4, $person_5);

$pole[5] = array('Jardo', 'Jágr', 'legenda@mail.sk','0903 123 123');

echo '<table class="persons">';
echo '<tr>';
echo '<th>Meno</th>';
echo '<th>Priezvisko</th>';
echo '<th>Email</th>';
echo '<th>Telefónne číslo</th>';
echo '</tr>';

for($i=0; $i<count($pole); $i++){
echo '<tr>';

for($j=0; $j<count($pole[$i]); $j++){
echo '<td>'.$pole[$i][$j].'</td>';
}

echo '</tr>';
}

echo '</table>';

?>
</div>

<div class="clear"></div>
</div>

<?php include "footer.php";?>
</div>
</body>
</html>

Ťažko sa vám učí samému?

Máte problémy s niektorými časťami alebo sa neviete učiť sám? Využite našu možnosť individuálnej asistencie:

  • samostatný prístup
  • vysvetlenie nejasností prebraného učiva
  • úlohy a cvičenia navyše
  • všetko z pohodlia domova cez mail a skype

Pre viac info kliknite tu

Kľúčové slová prednášky

mysqli queryphp sqlinsert intophp insertphp vlozenie dat do databazyphp insert dataako vlozit data do databazyako vlozit data zo strankyformular

IT ftip

Ako rozpoznáš introvertného programátora od extrovertného programátora? Extrovertný programátor sa pri rozhovore s tebou pozerá na tvoje topánky.