Есть таблица в БД - news (id_news (int), title_news (text), s_desc (text), desc (text), tags (text), add_date (datetime). Форма добавления новости add_news_form.php: Код (Text): <form enctype='multipart/form-data' action=<? echo $action ?> method=post> <input type="hidden" name="add_date" value="<?php echo date("Y-m-d H-i-s")?>"> <br> <input type="text" name="title_news" value="<? echo $title_news; ?>" style="width:450px;"> <br> <input type="text" name="tags" value="<? echo $tags; ?>" style="width:450px;"> <br> <textarea id="s_desc" name="s_desc" class="teheader"><? echo $s_desc ?></textarea> <br> <textarea id="desc" name="desc" class="teheader"><? echo $desc ?></textarea> <input type="submit" value="Сохранить"> <input type="reset" value="Очистить форму"> </form> Добавление и удаление новостей - работает! Если выбрать "редактирование новости" -> нас переносит на edit_news_form.php: Код (Text): if(!isset($action)) $action = "edit_news_script.php"; if (isset($_GET['id_news'])) { $id_news = mysql_real_escape_string ($_GET['id_news']); $query = mysql_query("SELECT * FROM news WHERE id_news='$id_news' "); while ($ss = mysql_fetch_array($query)) { $title_news = $ss['title_news']; $s_desc = $ss['s_desc']; $desc = $ss['desc']; $tags = $ss['tags']; } } //Включаем HTML-форму include "add_news_form.php"; Клацаем на submit и тут в дело вступает edit_news_script.php: Код (Text): $_POST['title_news'] = str_replace("'", "`", $_POST['title_news']); $_POST['s_desc'] = str_replace("'", "`", $_POST['s_desc']); $_POST['desc'] = str_replace("'", "`", $_POST['desc']); $_POST['tags'] = str_replace("'", "`", $_POST['tags']); $_POST['add_date'] = str_replace("'", "`", $_POST['add_date']); $id_news = "25"; $query = "UPDATE news SET title_news = '".$_POST['title_news']."', s_desc = '".$_POST['s_desc']."', desc = '".$_POST['desc']."', tags = '".$_POST['tags']."', add_date = '".$_POST['add_date']."' WHERE id_news='".$id_news."' "; var_dump($query); if(mysql_query($query)) { echo "работает"; } else { echo "не работает"; } var_dump выдает следующее: и при этом отображается второе эхо - "не работает" ---- Подскажите на что обратить внимание, вроде все передается, может кавычки?
запрос копируешь этот который получился, втыкаешь в пма и ковыряешь пока не починится. скорее всего кавычки обратные стоит применить.
спс, попробую Да, все отлично, кавычки выручили. А как грамотно сделать проверку переменной? я пробую так: Код (Text): if (isset($_POST['id_news'])) $id_news = mysql_real_escape_string ($_POST['id_news']); но тогда "неопределенная переменная"
Вобщем вот: в форму вставил: Код (Text): <input type="hidden" name="id_news" value="<?php echo $id_news;?>"> а в скрипт: Код (Text): if ($_POST['id_news']) { $id_news = $_POST['id_news']; } else { $id_news = ''; } Грамотно так будет?
можно и так Код (PHP): <input type="hidden" name="id_news" value="<?php echo $_POST['id_news'];?>"> и так Код (PHP): <? echo "<input type='hidden' name='id_news' value='{$_POST['id_news']}'>"; и даже так Код (PHP): echo "<input type=\"hidden\" name=\"id_news\" value=\"{$_POST['id_news']}\">"; если хочешь прям ну ниипически грамотно, то как-то так Код (PHP): echo "<input type='hidden' name='id_news' value='".htmlspecialchars($_POST['id_news'])."'>"; а функцию mysql_real_escape_string() надо применять непосредственно при засовывании данных в запрос. не раньше.
неа не совсем))) Код (PHP): echo'<input type="hidden" name="id_news" value="'.htmlspecialchars($_POST['id_news']).'">';
Код (PHP): echo "<input type=\"hidden\" name=\"id_news\" value=\"".htmlspecialchars($_POST['id_news'])."\">";