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 :)
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{
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();
?>
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