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 3 - Formulář a výpis dat z databáze do tabulky 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
jip123
Člen
Avatar
jip123:10.11.2014 16:33

V kódu jsem narazil na řádek: ', $_POST['jmeno'], $_POST['prijmeni'], $datum);
Nějak jsem nepochopil, proč řádek začíná ',
Prosím o polopatické vysvětlení. Díky

 
Odpovědět
10.11.2014 16:33
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na jip123
Jan Lupčík:10.11.2014 18:06

Končí tím předešlý řádek s dotazem. Takhle to vypadá přehledně, ale pokud chceš, měj dotaz na 1 řádku i s ' a na 2. řádku prvky. :)

Odpovědět
10.11.2014 18:06
TruckersMP vývojář
Avatar
filipsevcik
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
filipsevcik:2.2.2015 17:32

Martin Konečný (pavelco1998)

Vedel by si mi na kode ukazat akoby som to implementoval presne na clanok vyssie? Keby chcem vybrat iba jeden riadok na zaklade ID.. stale robim nieco zle, nejde mi to.

moc dik

 
Odpovědět
2.2.2015 17:32
Avatar
Odpovídá na filipsevcik
Martin Konečný (pavelco1998):4.2.2015 12:00

Ahoj, sorry a pozdní odpověď, byl jsem mimo.
Nevím, jak je ta třída Db přesně napsaná, ale mohlo by to jít takto:

$id = (int) $_GET["id"];

$data = Db::queryOne("
  SELECT * FROM tabulka
  WHERE id = ?
", $id);
Odpovědět
4.2.2015 12:00
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
petr.jouza
Člen
Avatar
petr.jouza:11.5.2015 17:01

Ahoj,
uměl by mi někdo pomoci s mou jednoduchou úlohou? Chci vytvořit databázovou tabulku, která si bude ukládat pouze emailové adresy.
Vkládání emailu se mi pomocí tohoto návodu podařilo a je funkční:

Db::connect($dbServer, $dbName, $dbUser, $dbPassword);
Db::query('INSERT INTO registrace_mail_denni_menu (email) VALUES (?)',$_POST['email']);

Kdyby mi někdo poradil jak otestovat, zda vkládaný email již je v databázi a pokud by byl, tak by vyskočilo upozornění, že email je již registrován, tak bych byl rád.

Ale nedaří se mi napsat smazání. Zkoušel jsem různé varianty:

Db::query('DELETE FROM registrace_mail_denni_menu (email) VALUES (?)',$_POST['email']);

V kódu jsem zkoušel Db::queryOne, Db::querySingle... v SQL příkazu ještě WHERE a pořád mi vyskakují nějaké chyby.

Omlouvám se, že to neumím pořádně popsat, ale toto je má první zkušenost s SQL a moc mi to pomůže ve správě webu restaurace mé sestřenky a alespoň se naučím něco nového :)

Předem díky všem.
Petr

 
Odpovědět
11.5.2015 17:01
Avatar
Odpovídá na petr.jouza
Martin Konečný (pavelco1998):11.5.2015 17:07

Ahoj,

jestli již daný mail v DB je - k tomu stačí na sloupec hodit unikátní klíč (unique key). Databáze ti pak sama vyhodí error, že se snažíš vložit duplicitní záznam.

U DELETE si stačí nastudovat, jak se jeho syntaxe píše. Nemažeš hodnoty sloupců, ale celý záznam (tj. řádek).

DELETE FROM `tabulka` WHERE podmínka
Odpovědět
11.5.2015 17:07
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
petr.jouza
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
petr.jouza:11.5.2015 18:31

SUPER, díky moc... už se mi to podařilo i vymazat. Ještě se chci zeptat: dá se nějak ta chybová hláška z MySQL počeštit? Nastavit co se má zobrazit v případě duplicity?

 
Odpovědět
11.5.2015 18:31
Avatar
Odpovídá na petr.jouza
Martin Konečný (pavelco1998):11.5.2015 20:38

Pokud to máš nastavené tak, aby ti to vyhazovalo výjimku, pak ji stačí jen odchytit a určit si vlastní text.

try {
  // DB dotaz
} catch (PDOException $e) {
  // došlo k duplicitě
}
Odpovědět
11.5.2015 20:38
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
petr.lhota
Člen
Avatar
petr.lhota:10.6.2015 11:31

Ahoj vsem, vedeli byste pokud odeslu registraci noveho uzivatele - mam zpet error: Warning: PDOStatement::e­xecute(): SQLSTATE[HY000]: General error: 1364 Field 'pocet_clanku' doesn't have a default value in C:\Levtrigo\www\Db­.php on line 61
? Mel jsem za to, ze sloupec "pocet_clanku" bude ignorovan... Diky , Petr.

Odpovědět
10.6.2015 11:31
At uz peklo bylo nebo nebylo, vymysleno bylo dobre.
Avatar
Odpovídá na petr.lhota
Neaktivní uživatel:10.6.2015 11:48

No, evidentně nebude. Zřejmě je nastavený jako not null, nemá defaultní hodnotu a ty ho v příkazu nedefinuješ.

// Ideální by bylo nastavit defaultní hodnotu 0

Editováno 10.6.2015 11:50
Odpovědět
10.6.2015 11:48
Neaktivní uživatelský účet
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 104.