Как добавить новости в БД, а после показать их?Этот код в порядке? - PullRequest
0 голосов
/ 26 июня 2011

мне снова нужна твоя помощь ...

У меня есть этот php код:

<? 

if(isset($_POST['addnews'])){
$type = $_POST['type'];
$news = $_POST['news'];
$date = date("d-m-Y");
$memip = $_SERVER['REMOTE_ADDR'];

if($news == NULL){
$final_report.= "ALERT - Please enter something in the field with the news!";
}else{
if($type = '' AND NULL){
$final_report.= "ALERT - Please choose something from the checklist or you will die in pain!"; 
}else{ 
$create_news = mysql_query("INSERT INTO `lisnews` (`id`,`type`,`news`,`date`,`ip`) VALUES('','$type','$news','$date','$memip')"); 
$final_report.="<meta http-equiv='Refresh' content='0; URL=../admin/add-news.php'/>"; 
}}}

?>

И эта форма:

<div style="width:100%; text-align:left; overflow:visible; margin-top:11px; margin-bottom:7px;" id="regpage">        
<form action="" method="post">
<fieldset style="border:none;">

<label for="news" style="font-weight:normal;width:30%;float:left;display:block;"><p>this is the news field, you can write here:</p></label> 
<textarea rows="3" cols="104" name="news"></textarea></br></br>

Choose news type: <select name="type" style="margin-top:5px;">
<option>1</option>
<option>2</option>
<option>2</option>
</select>

<input type="submit" name="addnews" value="add new news!" id="addnews" style="float:right; border:1px solid #999; background:#E4E4E4;
margin-top:5px; padding-bottom:2px;"/>

</fieldset>
</form>
</div>

Хочу добавить новости в БД, а потом показывать их на странице. (если вы можете помочь с этим тоже будет очень, очень мило с вашей стороны.

Привет.

1 Ответ

1 голос
/ 26 июня 2011

Прежде всего, вы забыли сообщить форме, куда отправлять все данные:

<form action="" method="post">

Вы должны поместить местоположение файла PHP, который вы разместили, между этими пустыми кавычками после 'действия= '.

Теперь давайте посмотрим на ваш PHP.

Прежде всего, это оператор if здесь.

if($type = '' AND NULL)

Помните, что = является оператором присваивания, а неоператор равенства.Это должен быть $ type == ''.Во-вторых, я не думаю, что AND является допустимым синтаксисом PHP.Так должно быть &&.И в-третьих ... это если утверждение никогда не вернет истину.Почему?

Допустим, у вас есть исправленная версия:

if($type == '' && NULL)

В этом случае будет возвращено значение true, если $ type является пустой строкой, а NULL - true.Однако для PHP NULL никогда не соответствует действительности.Так что это утверждение всегда будет ложным.Возможно, вы хотели проверить, был ли $ type либо пустым, либо NULL, в этом случае синтаксис:

if($type == '' || $type == NULL)

Далее, что со всеми операторами else?Вполне возможно, что несколько таких утверждений могут быть правдой.Я думаю, что это должно быть так:

if($news == NULL){
  $final_report.= "ALERT - Please enter something in the field with the news!";
  if($type = '' AND NULL){
    $final_report.= "ALERT - Please choose something from the checklist or you will die in    pain!"; 
  }
}else{ 

Более того, я не уверен, что вы можете использовать оператор. = Для переменной, которая не была инициализирована.Я бы добавил $ final_report = '' в начало кода просто для безопасности.

Наконец, у вас есть небольшая ошибка в вашем SQL:

"INSERT INTO `lisnews` (`id`,`type`,`news`,`date`,`ip`) VALUES('','$type','$news','$date','$memip')"

Имена столбцов donне принимать кавычки в SQL.Должно быть:

"INSERT INTO lisnews (id,type,news,date,ip) VALUES('','$type','$news','$date','$memip')"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...