Název a Datum jsou sloupce typu varchar a Obsah je pole typu mediumtext.
Celý skript pro přidání článku vypadá takto a přidání proběhne uspešně bez chyby:
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
<link rel="stylesheet" type="text/css" href="Admin.css" />
<meta name="generator" content="PSPad editor, www.pspad.com" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Lighter's personal website</title>
</head>
<body>
<div class="stred">
<?php
if ($_SESSION["User"] != "xxxx" && $_SESSION["Password"] != "xxxx") {
header("location: error.php");}
else {$_SESSION["Pristup"] = 1;}
?>
<?php
if (empty ($_POST)) { ?>
<h1>Přidej článek</h1>
<form action="pridej_clanek.php" method="post" />
<p>Název článku: <input type="text" name="Nazev" /> </p>
<p>Datum vložení: <input type="text" name="Datum" /> </p>
<p>Zadej obsah: </p>
<textarea name="Obsah" rows="10" cols="100"></textarea>
<p> <input type="submit" name="Odeslat" value="Odeslat" /></p>
<div class="link"> <a href="admin.php">>>Zpátky na úvodní stránku</a> </div>
<?php
}
else {
include ("../config.php");
$Pripojeni = mysql_connect (SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Nepovedlo se připojit k databází: " . mysql_error());
mysql_select_db(SQL_DBNAME, $Pripojeni) or die("Nepovedlo se vybrat databázi: " . mysql_error());
mysql_query("SET NAMES utf8");
mysql_query("INSERT INTO clanky (Nazev, Datum, Obsah) VALUES ('$_POST[Nazev]', '$_POST[Datum]', '$_POST[Obsah]')") or die("Nelze přidat údaje do databáze: " . mysql_error());
mysql_close($Pripojeni);
$Vypis = "Přidání záznamů do tabulky proběhlo úspěšně."; ?>
<div class="link">
<?php echo $Vypis; ?>
<a href="admin.php">>>Zpátky na úvodní stránku</a>
</div>
<?php
}
?>
</div>
</body>
</html>
Skripr pto editaci je dá se říct to samé jen trochu pozměněný, to bohužel ale nefunguje a vrací to chybu You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Kod vypadá takt:
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
<link rel="stylesheet" type="text/css" href="Admin.css" />
<meta name="generator" content="PSPad editor, www.pspad.com" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Lighter's personal website</title>
</head>
<body>
<div class="stred">
<?php
if ($_SESSION["User"] != "xxxx" && $_SESSION["Password"] != "xxxxx") {
header("location: error.php");}
else {$_SESSION["Pristup"] = 1;}
?>
<?php
if (empty ($_POST)) { ?>
<h1>Edituj článek</h1>
<form action="edituj_clanek.php" method="post" />
<p>Název článku: <input type="text" name="Nazev" /> </p>
<p>Datum vložení: <input type="text" name="Datum" /> </p>
<p>Zadej obsah: </p>
<textarea name="Obsah" rows="10" cols="100"></textarea>
<p> <input type="submit" name="Odeslat" value="Odeslat" /></p>
<div class="link"> <a href="admin.php">>>Zpátky na úvodní stránku</a> </div>
<?php
}
else {
include ("../config.php");
$Pripojeni = mysql_connect (SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Nepovedlo se připojit k databází: " . mysql_error());
mysql_select_db(SQL_DBNAME, $Pripojeni) or die("Nepovedlo se vybrat databázi: " . mysql_error());
mysql_query("SET NAMES utf8");
$ID = $_GET["ID"];
$Nazev = $_POST["Nazev"];
$Datum = $_POST["Datum"];
$Obsah = $_POST["Obsah"];
mysql_query("UPDATE clanky SET Nazev = '$Nazev', Datum = '$Datum', Obsah = '$Obsah' WHERE IDClanky = $ID") or die("Nelze upravit údaje v databázi: " . mysql_error());
mysql_close($Pripojeni);
$Vypis = "Příspěvek byl úspěšně upraven."; ?>
<div class="link">
<?php echo $Vypis; ?>
<a href="admin.php">>>Zpátky na úvodní stránku</a>
</div>
<?php
}
?>
</div>
</body>
</html>
Když si vypíši promenné Název, Datum i Obsah tak to vypíše ok, takže chyba musí být v tom příkazu někde. Snad jsem podal maximálně vyčerpávající info k hledání chyby.