Проблема: не обновляется запись в бд. Помогите, где ошибка?!
edit_post.php
<center><b><h2>Редактирование статьи</h2></b></center>
<?
if (!isset($id))
{
$result = mysql_query ("SELECT `id`, `title` FROM `materials` ", $db);
$myrow = mysql_fetch_array ($result);
do
{
printf ("<a href = 'edit_post.php?id=%s'>%s</a><br>", $myrow['id'], $myrow['title']);
}
while ($myrow = mysql_fetch_array ($result));
}
else
{
$result = mysql_query("SELECT * FROM `materials` WHERE id = $id");
$myrow = mysql_fetch_array ($result);
$result2 = mysql_query("SELECT * FROM `categories` ");
$myrow2 = mysql_fetch_array ($result2);
echo "<form name='form1' method='post' action='update_post.php'>
<b>Категория:</b><br>
<select name='cat' id='cat'> ";
do {
if ($myrow['cat'] == $myrow2['id'] )
{
printf ("<p><option value='%s' selected>%s</value>", $myrow2['id'], $myrow2['title']);
}
else
{
printf ("<p><option value='%s'>%s</value>", $myrow2['id'], $myrow2['title']);
}
}
while ($myrow2 = mysql_fetch_array($result2));
echo "</select><br>";
print<<<HERE
<p>
<label>Название статьи:<br>
<input type="text" value = "$myrow[title]" name="title" id="title" size="60">
</label>
</p>
<p>
<label>Ключевое описание:<br>
<input type="text" value = "$myrow[meta_d]" name="meta_d" id="meta_d" size="60">
</label>
</p>
<p>
<label>Ключевые слова:<br>
<input type="text" value = "$myrow[meta_k]" name="meta_k" id="meta_k" size="60">
</label>
</p>
<p>
<label>Краткое описание статьи:<br>
<textarea name="description" id="description" cols="40" rows="20" >$myrow[description]</textarea>
</label>
</p>
<p>
<label>Полный текст статьи:<br>
<textarea name="text" id="text" cols="40" rows="20" >$myrow[text]</textarea>
</label>
</p>
<p>
<label>Изображение:<br>
<input type="text" value = "$myrow[img]" name="img" id="img" size="40">
</label>
</p>
<p>
<label>Мини-изображение:<br>
<input type="text" value = "$myrow[mini_img]" name="mini_img" id="mini_img" size="40">
</label>
</p>
<p>
<label>
<input type="submit" name="submit" id="submit" value="Внести изменения">
</label>
</p>
</form>
HERE;
}
?>
update_post.php
<? include("protection.php");
include("blocks/bd.php");
if (isset ($_POST ['title'])) { $title = $_POST ['title'];
if ($title == '') { unset ($title); } }
if (isset ($_POST ['meta_d'])) { $meta_d = $_POST ['meta_d'];
if ($meta_d == '') { unset ($meta_d); } }
if (isset ($_POST ['meta_k'])) { $meta_k = $_POST ['meta_k'];
if ($meta_k == '') { unset ($meta_k); } }
if (isset ($_POST ['description'])) { $description = $_POST ['description'];
if ($description == '') { unset ($description); } }
if (isset ($_POST ['text'])) { $text = $_POST ['text'];
if ($text == '') { unset ($text); } }
if (isset ($_POST ['img'])) { $img = $_POST ['img'];
if ($img == '') { unset ($img); } }
if (isset ($_POST ['mini_img'])) { $mini_img = $_POST ['mini_img'];
if ($mini_img == '') { unset ($mini_img); } }
if (isset ($_POST ['cat'])) { $cat = $_POST ['cat'];
if ($cat == '') { unset ($cat); } }
if (isset ($_POST ['id'])) { $id = $_POST ['id'];
if ($id == '') { unset ($id); } }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Панель Администратора - Обнавление статьи</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<link rel="stylesheet" href="images/Refresh.css" type="text/css" />
</head>
<body>
<div id="wrap">
<? include("blocks/heder.php");
include("blocks/menu_top.php"); ?>
<div id="content-wrap">
<? include("blocks/menu_left.php"); ?>
<div id="main"> <a name="TemplateInfo"></a><br>
<?
if (isset($title) && isset($meta_d) && isset($meta_k) && isset($description)
&& isset($text) && isset($img) && isset($mini_img) && isset($cat))
{
$result = mysql_query ("UPDATE `materials` SET title = $title, meta_d = $meta_d, meta_k = $meta_k, description = $description,
text = $text, img = $img, mini_img = $mini_img, cat = $cat WHERE id=$id");
if ($result == 'true'){echo "<p><b>Статья успешно обнавлена.</b></p>";}
else {echo "<p><b>Статья не обнавлена.</b></p>";}
}
else
{
echo "<p><b>Вы заполнили не все поля, поэтому статья не может быть обнавлена.</b></p>";
}
?>
<br><br><br>
</div>
</div>
<? include("blocks/footer.php"); ?>
</div>
</body>
</html>
Спустя 20 минут, 14 секунд (23.09.2012 - 11:10) Placido написал(а):
Строковые данные должны обрамляться апострофами.
$result = mysql_query ("UPDATE `materials` SET title = '$title', meta_d = '$meta_d', meta_k = '$meta_k', description = '$description',
text = '$text', img = '$img', mini_img = '$mini_img', cat = '$cat' WHERE id = $id");
Спустя 6 минут, 17 секунд (23.09.2012 - 11:17) sava4aev написал(а):
Все та же проблема. Выводит , что "Статья не обновлена."
Спустя 57 минут (23.09.2012 - 12:14) Placido написал(а):
Спустя 3 часа, 19 минут, 29 секунд (23.09.2012 - 15:33) inpost написал(а):
mysql_query("запрос") or die(mysql_error());
Запиши в таком стиле и получишь код ошибки! И её описание.
Спустя 6 минут, 32 секунды (23.09.2012 - 15:40) sava4aev написал(а):
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 2
Спустя 27 минут, 57 секунд (23.09.2012 - 16:07) neadekvat написал(а):
sava4aev, кроме ошибки выведи на экран сам текст запроса, который у тебя получается после подстановки переменных.
Спустя 1 час, 52 минуты, 16 секунд (23.09.2012 - 18:00) inpost написал(а):
Имена ячеек и таблиц обрамляй обратными апострофами. `name`, `table`, `cell`. По аналогии с именем таблицы, как ты сделал!
Далее переменную обработай на mysql_real_escape_string каждую, которую добавляешь в БД.
Далее переменную обработай на mysql_real_escape_string каждую, которую добавляешь в БД.
"UPDATE `table` SET
`cell` = '".mysql_real_escape_string($cell)."',
...
Спустя 29 минут, 13 секунд (23.09.2012 - 18:29) sava4aev написал(а):
inpost, зделал, пишет что статья обновлена, однако этого не происходит. вот посмотри, что у меня получилось:
<? include("protection.php");
include("blocks/bd.php");
if (isset ($_POST ['title'])) { $title = $_POST ['title'];
if ($title == '') { unset ($title); } }
if (isset ($_POST ['meta_d'])) { $meta_d = $_POST ['meta_d'];
if ($meta_d == '') { unset ($meta_d); } }
if (isset ($_POST ['meta_k'])) { $meta_k = $_POST ['meta_k'];
if ($meta_k == '') { unset ($meta_k); } }
if (isset ($_POST ['description'])) { $description = $_POST ['description'];
if ($description == '') { unset ($description); } }
if (isset ($_POST ['text'])) { $text = $_POST ['text'];
if ($text == '') { unset ($text); } }
if (isset ($_POST ['img'])) { $img = $_POST ['img'];
if ($img == '') { unset ($img); } }
if (isset ($_POST ['mini_img'])) { $mini_img = $_POST ['mini_img'];
if ($mini_img == '') { unset ($mini_img); } }
if (isset ($_POST ['cat'])) { $cat = $_POST ['cat'];
if ($cat == '') { unset ($cat); } }
if (isset ($_POST ['id'])) { $id = $_POST ['id'];
if ($id == '') { unset ($id); } }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Панель Администратора - Обнавление статьи</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<link rel="stylesheet" href="images/Refresh.css" type="text/css" />
</head>
<body>
<div id="wrap">
<? include("blocks/heder.php");
include("blocks/menu_top.php"); ?>
<div id="content-wrap">
<? include("blocks/menu_left.php"); ?>
<div id="main"> <a name="TemplateInfo"></a><br>
<?
$result = mysql_query ("UPDATE `materials` SET
`title` = '".mysql_real_escape_string($title)."', `meta_d` = '".mysql_real_escape_string($meta_d)."',
`meta_k` = '".mysql_real_escape_string($meta_k)."', `description` = '".mysql_real_escape_string($description)."',
`text` = '".mysql_real_escape_string($text)."', `img` = '".mysql_real_escape_string($img)."',
`mini_img` = '".mysql_real_escape_string($mini_img)."', `cat` = '".mysql_real_escape_string($cat)."'
WHERE id='$id'");
if($result == true){echo "<p><b>Статья успешно обновлена.</b></p>";}
else {echo "<p><b>Статья не обнавлена.</b></p>";}
?>
<br><br><br>
</div>
</div>
<? include("blocks/footer.php"); ?>
</div>
</body>
</html>
Спустя 17 минут, 58 секунд (23.09.2012 - 18:47) inpost написал(а):
А где or die() ? Или я выше этого не говорил?
А где экранизация обратных кавычек ВСЕХ ячеек, а не только тех, что тебе нравятся?
И успех проверки надо делать через mysql_affected_rows.
А где экранизация обратных кавычек ВСЕХ ячеек, а не только тех, что тебе нравятся?
И успех проверки надо делать через mysql_affected_rows.
Спустя 7 минут, 27 секунд (23.09.2012 - 18:54) sava4aev написал(а):
inpost вааааа
У меня уже мозг кипит!!! Как это все будет выглядить?
У меня уже мозг кипит!!! Как это все будет выглядить?