Autor | Zpráva | ||
---|---|---|---|
Michal4574927 Profil |
#1 · Zasláno: 26. 5. 2016, 10:32:56 · Upravil/a: Moderátor (editace znemožněna) 27. 5. 2016, 08:54:15
Ahoj snaží se vytvořit aplikaci pomocí PHP pro velice jednoduchou databázi knih.
Vesměs mi už všechno funguje, ale nemohu přijít na některé věci. Hlavní problém co bych chtěl řešit je stále vyskakující chyba: Undefined index: p in C:\xampp\htdocs\knihovna\index.php on line 20 Dále pak bych chtěl zamezit možnosti dát do databáze prázdné hodnoty. A radám ohledně optimalizace se nebráním :) <?php require ('tridy.php'); databaze::prihlasit('knihovna', 'knihovna', '123456', 'localhost');?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Knihovna</title> </head> <body> <h1>Knihovna</h1> <?php if(isset($_POST['Nazev'])) { if (databaze::dotaz("INSERT INTO knihy (Název, Autor, Žánr, RokVydání) VALUES ('" . $_POST['Nazev'] . "', '" . $_POST['Autor'] . "', '" . $_POST['Zanr'] . "', '" . $_POST['Rok'] . "')")) { echo'Přidáno. <a href="index.php">Zpět na přehled</a>'; } } else{ ; zde je řádek 20 if($_GET['p']=='novy') { echo ' <h1>Přidání knížky</h1> <form action="index.php" method="POST"> <p>Název: <input type="text" name="Nazev"<br> Autor:<input type="text" name="Autor" /><br> Žánr:<input type="text" name="Zanr" /><br> Rok vydání:<input type="text" name="Rok" /><br> <input type="submit" value="Přidat"></p> </form> ' ; } else { $knihy = databaze::tabulka("SELECT * FROM knihy"); echo Tab::vytvorit($knihy); echo'<p><a href="index.php?p=novy">Přidat další knížku</a></p>'; ($_GET['p'] = '1'); } } ?> </body> </html> <?php databaze::konec(); ?> zde je muj OOP stript <?php class Tab { private $data; public function __construct($data) { $this->data = $data; } public static function vytvorit ($data) { return new Tab ($data); } public function __toString() { $tab = ''; foreach ($this->data as $radek) { $tab.='<tr>'; foreach ($radek as $key => $val) { $tab.='<td>' . $val . '</td>'; } $tab.='</tr>'; } return '<table>' . $tab . '</table>'; } } class databaze { private static $link; public static function prihlasit($db, $user, $pass, $host) { self::$link = @mysqli_connect($host, $user, $pass, $db); self::dotaz("SET CHARACTER SET UTF8"); self::dotaz('SET NAMES UTF8'); } public static function dotaz($dotaz) { return mysqli_query(self::$link, $dotaz); } public static function konec() { mysqli_close(self::$link); } public static function tabulka($dotaz) { $tabulka = array(); $vysledek = self::dotaz($dotaz); while ($radek = mysqli_fetch_array($vysledek, MYSQL_ASSOC)) { $tabulka[] = $radek; } return $tabulka; } } ?> Předem děkuji za vaše rady Moderátor juriad: Dotazy se zde nemažou. Jednou byly položeny, a tak zůstanou na věky.
|
||
Beavis Profil |
#2 · Zasláno: 26. 5. 2016, 13:39:48
Michal4574927:
Definuj si proměnnou a s tou následně pracuj, ušetříš si pár písmenek a zároveň si ji můžeš ošetřit. $p = isset($_GET["p"]) ? $_GET["p"] : false; // třeba tak: pokud existuje ?p= tak přiřadí danou hodnotu, v opačném případě vrátí false, nebo cokoliv budeš chtít $_GET["p"] budeš používat $p .
|
||
Keeehi Profil |
#3 · Zasláno: 26. 5. 2016, 13:48:06
if(isset($_GET['p']) && $_GET['p']=='novy') { |
||
Časová prodleva: 9 let
|
0