Проблем с <form... Не публикува в БД

Msecurity

Registered
Здравейте
След като попълня формата и реша да я изпратя към базата данни, не публикува въведената от мен информация а попълва полетата със news_title, news_text....
Ако може малко помощ.. и да кажете къде точно е била грешката :)
PHP:
<?php

include("config.php");

if(isset($_POST['submit'])) {
if(isset($_POST['news_title'], $_POST['news_text'], $_POST['news_author'], $_POST['news_date'])) {
$ntitle=trim($_POST['news_title']);
$ntext=trim($_POST['news_text']);
$nauthor=trim($_POST['news_author']);
$ndate=trim($_POST['news_date']);
}
else {
$ntitle="";
$ntext="";
$nauthor="";
$ndate="";
}
if (!$ntitle || !$ntext || !$nauthor || !$ndate) {
echo "Не сте попълнили всички полета";
}
else {
mysql_query("INSERT into news VALUES ('news_id', 'news_title', 'news_text', 'news_author', 'news_date');") or die (mysql_error());
echo "Новината е добавена успешно";
}
}
else {
?>
<form method="post">
<p></p><b>Добавете новина</b><br/>
Заглавие:<br/><input type="text" name="news_title" /><br/>
Текст:<br/><textarea name="news_text" cols="30" rows="5" ></textarea><br/>
Автор:<br/><input type="text" name="news_author" /><br/>
Дата:<br/><input type="date" name="news_date" /><br/></p>
<input name="submit" type="submit" value="Добави новината" />
</form>
<?php
}
?>
 
Код:
<?php

include("config.php");

if(isset($_POST['submit'])) {
if(isset($_POST['news_title'], $_POST['news_text'], $_POST['news_author'], $_POST['news_date'])) {
$ntitle=trim($_POST['news_title']);
$ntext=trim($_POST['news_text']);
$nauthor=trim($_POST['news_author']);
$ndate=trim($_POST['news_date']);
}
else {
$ntitle="";
$ntext="";
$nauthor="";
$ndate="";
}
if (!$ntitle || !$ntext || !$nauthor || !$ndate) {
echo "Не сте попълнили всички полета";
}
else {
mysql_query("INSERT into news ('news_id', 'news_title', 'news_text', 'news_author', 'news_date') VALUES ('','{$ntitle}','{$ntext}','{$nauthor}','{$ndate}')") or die (mysql_error());
echo "Новината е добавена успешно";
}
}
else {
?>
<form method="post">
<p></p><b>Добавете новина</b><br/>
Заглавие:<br/><input type="text" name="news_title" /><br/>
Текст:<br/><textarea name="news_text" cols="30" rows="5" ></textarea><br/>
Автор:<br/><input type="text" name="news_author" /><br/>
Дата:<br/><input type="date" name="news_date" /><br/></p>
<input name="submit" type="submit" value="Добави новината" />
</form>
<?php
}
?>
 
Вместо променливите, ти си написал имената на колоните. INSERT има общо три синтаксиса, но си омешал два от тях.

Накракто, решението на твоя проблем е:
PHP:
mysql_query("INSERT into news VALUES (NULL, '$ntitle', '$ntext', '$nauthor', '$ndate');") or die (mysql_error());

Другия вариант от който вероятно си гледал и си се объркал включва и имената на колоните:
PHP:
mysql_query("INSERT into news ('news_id, 'news_title', 'news_text', 'news_author', ', news_date') VALUES (NULL, '$ntitle', '$ntext', '$nauthor', '$ndate');") or die (mysql_error());

И третия вариант използва SET, което не е част от SQL стандарта, а е специфично за MySQL:

PHP:
mysql_query("INSERT into news SET news_title =  '$ntitle', news_text = '$ntext', news_author = '$nauthor', news_date = '$ndate' ") or die (mysql_error());

Един съвет - за полето news_date по-добре остави MySQL да слага датата, има специални типове полета за време и дати, в последствие ще ти бъде много по-удобно когато трябва да търсиш/изкараш новини по дата или между две дати или да сортираш по дата.
 
exec мерси много стана... след като разгледах кодовете който ти си ми дал и моят код видях къде допускам грешката и как. Дребна грешка.. но достатъчна колкото да ми стъжни живота :D
Мерси много +1 за помоща :)
 

Back
Горе