Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 3. diel - Formulár a výpis dát z databázy do tabuľky v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
jirka.skop
Člen
Avatar
Odpovedá na petr.jouza
jirka.skop:14.7.2016 16:25

Ahoj,díky za radu,princip sem pochopil,ale nemůžu pořád přijít na to jak to napsat.Mohl bys prosím tě udělat ukázku třeba toť na ten tutoriál?Ono v 45 letech to už tak nemyslí a člověk potřebuje někdy pořádně nakoupnout.Díky Jirka.

Avatar
petr.jouza
Člen
Avatar
Odpovedá na jirka.skop
petr.jouza:14.7.2016 17:45

Tak dám příklad:
pro info: používám PDO databázový ovladač zde z itnetwork, tak-že příklady budou pomocí tohoto ovladače... příklad udělám třeba na stránku s vypsanými uživateli, které v MySQL zapisuji

Tak-že tedy... mám stránku, kde vypíšu uživatelé v tabulce, stránka třeba uzivatele.php:

<?php
$uzivatele = Db::queryAll('SELECT id, uzivatelske_jmeno, jmeno, prijmeni, email FROM uzivatele') ;
echo '<table>' ;
        echo '<thead>' ;
                echo '<tr>' ;
                        echo '<td></td>' ;
                        echo '<td>Uživatelské jméno</td>' ;
                        echo '<td>Jméno</td>' ;
                        echo '<td>Příjmení</td>' ;
                        echo '<td>Email</td>' ;
                echo '</tr>' ;
        echo '</thead>' ;
        echo '<tbody>' ;
        foreach ($uzivatele as $uzivatel) {
                echo '<tr>' ;
                        echo '<td>' ;
                                /* ZDE SE ODKÁŽU NA STRÁNKU UPRAVIL POMOCÍ ID Z DB
                                echo '<a href="upravit.php?id='.$uzivatel['id'].'"><img src="upravit.jpg" title="upravit"></a>' ;
                        echo '</td>' ;
                        echo '<td>'.$uzivatel['uzivatelske_jmeno'].'</td>' ;
                        echo '<td>'.$uzivatel['jmeno'].'</td>' ;
                        echo '<td>'.$uzivatel['prijmeni'].'</td>' ;
                        echo '<td>'.$uzivatel['email'].'</td>' ;
                echo '</tr>' ;
        }
        echo '</tbody>' ;
echo '<table>' ;
?>

Když tedy kliknu na ikonku pro úpravu, tak ta mě přesměruje na stránku **upravit.php **a jako $_GET budu mít ID (primární klíč záznamu z tabulky) pomocí kterého se odkážu na konkrétní záznam v tabulce, tak-že stránka v body, kde načtu konkrétní řádek a vytvořím formulář do kterého načtu hodnoty z těch položek:

<?php
$uzivatel = Db::queryOne(' SELECT id, uzivatelske_jmeno, jmeno, prijmeni, email FROM uzivatele WHERE id = ?',$_GET['id']) ;
echo '<form method="post">' ;
        echo '<input type="text" name="uzivatelske-jmeno" value="'.$uzivatel['uzivatelske_jmeno'].'"><br>' ;
        echo '<input type="text" name="jmeno" value="'.$uzivatel['jmeno'].'"><br>' ;
        echo '<input type="text" name="prijmeni" value="'.$uzivatel['prijmeni'].'"><br>' ;
        echo '<input type=email name="email" value="'.$uzivatel['email'].'"><br>'
        echo '<button type="submit" name="ulozit">ULOŽIT</button>' ;
echo '</form>' ;
?>

A do toho samého souboru, pokud ve form neuvedu action na samostatný skript mohu uvést php skript pro zpracování formuláře:

<?php
if(isset($_POST['ulozit'])) {
        Db::query('UPDATE uzivatele SET uzivatelske_jmeno = ?, jmeno = ?, prijmeni = ?, email = ? WHERE id = ?',$_POST['uzivatelske-jmeno'], $_POST['jmeno'], $_POST['prijmeni'], $_POST['email'], $_GET['id']) ;
}
?>

Takto tedy napsáno poněkud zjednodušeně. Samozřejmě tu chybí ošetření vstupních dat a různé kontroly na existenci ID atd... já osobně ani nepoužívám přímo primární klíč ID z tabulky pro výpis do stránky, ale pro ukázku a pochopení principu by ti to mělo stačit.

Něco jiného by bylo pak jak jsem psal, kdybys chtěl upravovat více záznamů z tabulky najednou... to bych musel v tom upravit.php všechno napsat jinak. Respektive by musela být zvolena úplně jiná logika.

Avatar
petr.jouza
Člen
Avatar
Odpovedá na jirka.skop
petr.jouza:14.7.2016 17:50

Ještě se předem omlouvám za to neodkomentování komentáře z první ukázky... :)

Avatar
jirka.skop
Člen
Avatar
Odpovedá na petr.jouza
jirka.skop:14.7.2016 21:19

Díky,něco takového jsem potřeboval,těť to pořádně prostuduju a můžu pokračovat.

Avatar
Bartoloměj Eliáš:11.9.2016 22:36

Mockrát děkuji, pochopitelně vysvětleno.

Avatar
Zdenek
Člen
Avatar
Zdenek:17.9.2016 21:22

Ahojte, prosím o pomoc. Snažím se rozchodit formulář, ale někde asi dělám chybu. Mám stažené odtud soubory, ale nefunguje mi přidávání jmen do databáze. Výsledek je:

Editované
Avatar
Zdenek
Člen
Avatar
Odpovedá na Zdenek
Zdenek:18.9.2016 7:39

Tady je stažený zdroják:

<!DOCTYPE html>
<html lang="cs-cz">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Registrace uživatele</title>
</head>

<body>

<h1>Registrace uživatele</h1>

<?php

require_once('Db­.php');
Db::connect('127­.0.0.1', 'databaze_pro_web', 'root', '');
if ($_POST)
{
$datum = date("Y-m-d H:i:s", strtotime($_POS­T['datum_naro­zeni']));
Db::query('
INSERT INTO uzivatele (jmeno, prijmeni, datum_narozeni)
VALUES (?, ?, ?)
', $_POST['jmeno'], $_POST['prijmeni'], $datum);

echo('<p>Byl jste úspěšně zaregistrován­.</p>');
}
?>

<form method="post">
Jméno:<br />
<input type="text" name="jmeno" /><br />
Příjmení:<br />
<input type="text" name="prijmeni" /><br />
Datum narození:<br />
<input type="text" name="datum_na­rozeni" /><br />
<input type="submit" value="Registrovat" />
</form>

</body>
</html>

Editované
Avatar
Vít Vohralík:11.10.2016 17:07

Mám to úplně přesně napsaný jako tady ale nefunguje mi to. Píše to tuto chybu:

Odpovedať
Work hard, dream big.
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovedá na Vít Vohralík
Jan Lupčík:11.10.2016 17:22

Nemáš vytvořenou databázi 'databaze_pro_web'.

Odpovedať
TruckersMP vývojář
Avatar
Odpovedať
Work hard, dream big.
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 104.