Autor Zpráva
Lexter
Profil
Ahoj, nějak si nevím rady s tímto scriptem, který má za úkol zapsat data do databáze. Přesněji řečeno titulek, text, čas a rubriku. S výpisem už problém není, s tím si nějak poradím, ale zápis se mi nedaří.

Zapisovac.php
<?php
include "config.php"; 

$titulek=$_POST["titulek"]; 
$text=$_POST["text"];
$datum=time();
$kategorie=$_POST["kategorie"];

$dotaz=mysql_query("INSERT INTO`clanky`(`titulek`,`text`,`datum`,`kategorie`) VALUES
('$titulek','$text', '$datum', '$kategorie')"); 

if($dotaz) 
echo "Zápisek byl přidán";
else{
echo "Zápisek se nepodařilo přidat";
}
?>


admin-zapis.php
<?php
include "zapisovac.php"; 
?>
<html>
<body>
<form action="zapisovac.php" method="POST">
Nadpis článku<br />
<input type="text" name="titulek" /><br />
Text zápisku<br />
<textarea cols="25" rows="5" name="text"></textarea><br />
Rubrika<br />
<select name="kategorie">
<option value="0">Kategorie 0</option>
</select><br />
<input type="submit" value="Ok" />
</form>
</body>
</html>


Asi to bude blbost, ale co naplat, na tohle nejsem stavěný.
Sventek
Profil
A co ti to vypisuje za chybu? Do databáze se vloží aspoň něco (nulový řádek) nebo vůbec nic?

PS: Dej si pozor na
$titulek=$_POST["titulek"]; 
, radši bych tam všude dal
$titulek=addslashes($_POST["titulek"]); 
Lexter
Profil
To je to, přímo ve zapis-admin.php mi to standardně vypisuje chybovou hlášku o nepřidání zápisku. Pokud zápisek napíšu, odkliknu, prostě se nechce odeslat a vypíše jen Zápisek se nepodařilo přidat.

Díky za radu.
Lexter
Profil
Jak se ale zdá, řádky přidává.
Sventek
Profil
Zkus tam vložit tento dotaz :
$dotaz=mysql_query("INSERT INTO`clanky`(`titulek`,`text`,`datum`,`kategorie`) VALUES
('".$titulek."','".$text."', '".$datum."', '".$kategorie."')") OR die(MYSQL_ERROR());
BlackMartin
Profil
Z příkladu jsem usoudil že se jedná o nějaké postování článku.
Jak vkládáte čas do DB pomocí time() myslím si že by bylo lepší použít TIMESTAMP a výchozí hodnot nastavit na CURRENT_TIMESTAMP dá se potom stím lépe pracovat.
Posléze bych asi upravil SQL dotaz na ( jak Sventek naznačoval )
mysql_query("INSERT INTO`clanky`(`titulek`,`text`,`datum`,`kategorie`) VALUES
('".addslashes($titulek)."','".addslashes($text)."', '".$datum."', '".addslashes($kategorie)."')") or die(MYSQL_ERROR())
krteczek
Profil
spíš bych použil DATETIME a NOW()
chyběla ti tam mezera
$titulek = mysql_real_escape_string($_POST["titulek"]); 
$text =  mysql_real_escape_string($_POST["text"]);
$kategorie= mysql_real_escape_string($_POST["kategorie"]);

$dotaz="INSERT INTO`clanky` (`titulek`,`text`,`datum`,`kategorie`) VALUES 
(" . $titulek . ", " . $text . ",  NOW(), " . $kategorie  . ")"); 

opraveno NEW =>NOW
SosniTo.sk
Profil *
A prosím som začiatočník. Mám dátup zapísaný, ako spraví ms neho potom správny formát ? vyzerá nejak takto:

Dátum: 1259102492

prosím ako to mám zapísať ?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: