Не обновляются данные в mysql
Создаю вот такой запрос
<?php
if (isset($title) && isset($text))
{
$result = mysql_query ("UPDATE settings SET title = '$title', text = '$text' WHERE page =
'index1'", $db);
if ($result = 'true') {echo "успешно";}
else {echo "Ошибка, данные не обновлены";}
}
После обработки в любом случае выходит - "успешно" и данные не добовляются. Имя страницы намеренно изменено на несуществующую, а данные кдето обновляются и после проверки получаем - true
Вопрос:
Почему, ведь такой строки в таблице же не существует, стало быть обновлять то там и нечего? :blink:
Спустя 7 минут, 21 секунда (13.12.2010 - 12:03) Renden написал(а):
$result = mysql_query ("UPDATE settings SET title = '$title', text = '$text' WHERE page = 'index1'", $db) or die(mysql_error());
if ($result) {echo "успешно";}
else {echo "Ошибка, данные не обновлены";}
}
Так вроде запрос верный..
Спустя 5 минут, 37 секунд (13.12.2010 - 12:09) SnowWind написал(а):
Нет и так тоже определяет НЕ СУЩЕСТВУЮЩУЮ строку запроса как - TRUE
Спустя 5 минут, 5 секунд (13.12.2010 - 12:14) Renden написал(а):
SnowWind
А ему без разницы в любом случае, хоть ты в where что угодно напиши, если он смог выполнить запрос, и в результате него небыло ошибок он в любом случае покажет тебе true..
А ему без разницы в любом случае, хоть ты в where что угодно напиши, если он смог выполнить запрос, и в результате него небыло ошибок он в любом случае покажет тебе true..
Спустя 12 минут, 11 секунд (13.12.2010 - 12:26) SnowWind написал(а):
Ну если он выполнил запрос, стало быть должны появиться его ПОСЛЕДСТВИЯ, а в базе ничего лишнего нет. Никакой новой строки!
Ну ведь он же что-то тогда ОБНОВИЛ
Ну ведь он же что-то тогда ОБНОВИЛ
Спустя 2 минуты (13.12.2010 - 12:28) Renden написал(а):
SnowWind
UPDATE сам принимает решения обновлять ему или нет) Т.е если он строку такую не нашел он ничего с ней делать не будет, но сам запрос считаеться выполненым.
Новая строка это к INSERT INTO
UPDATE сам принимает решения обновлять ему или нет) Т.е если он строку такую не нашел он ничего с ней делать не будет, но сам запрос считаеться выполненым.
Новая строка это к INSERT INTO
Спустя 17 минут, 30 секунд (13.12.2010 - 12:46) SnowWind написал(а):
Ну и как тогда проверить добавил он что то или нет? Если весь смысл проверки теряется, даже если строку в зопросе - title заменить на - titles он всёравно выдаёт - TRUE что то тут всётаки не так
Спустя 12 минут, 20 секунд (13.12.2010 - 12:58) Renden написал(а):
SnowWind
Меняешь title? в таком случае дожно выдавать ошибку что то типа Unknown column, выложи полные настройки подключения к бд
UPDATE settings SET title = '$title'
Меняешь title? в таком случае дожно выдавать ошибку что то типа Unknown column, выложи полные настройки подключения к бд
Спустя 10 минут, 50 секунд (13.12.2010 - 13:09) SnowWind написал(а):
<?php
$db = mysql_connect ("localhost", "SW", "WS");
mysql_select_db ("main_base", $db);
$result = mysql_query ('SELECT * FROM settings WHERE page="index"', $db);
$myrow = mysql_fetch_array ($result);
if (isset($_POST['title']) && $_POST['title'] != '')
{
$title = $_POST['title'];
}
if (isset($_POST['text']) && $_POST['text'] != '')
{$text = $_POST['text'];}
?>
<html>
<head>
<link href = "style.css" rel = "stylesheet" type = "text/css">
<title></title>
</head>
<body>
----- Тут идёт много таблиц всяких ------
И вот доходим до первого включения кода
<?php
if (isset($title) && isset($text))
{
$result = mysql_query ("UPDATE settings SET title = '$title', text = '$text' WHERE page = 'index'", $db);
if ($result == 'true') {echo "успешно";}
else {echo "Ошибка, данные не обновлены";}
echo '<br><a href="index.php">В администраторскую панель</a>';
}
else
{
print <<<HERE
<form action = "adit_main.php" name = "main_edit" method = "POST">
<p>Титул: <input type = "text" name = "title" value = "$myrow[title]"></p>
<p align = "center">Содержание страницы: <textarea name = "text" cols="70" rows="30">"$myrow[text]"</textarea></p>
<div align = "center"><input type = "submit" value = "Отредактировать" align = "center">
</form></div>
HERE;
}
?>
</body>
</html>
Спустя 16 минут, 45 секунд (13.12.2010 - 13:26) kovaldm написал(а):
Есть несколько косяков.
А у тебя title и text в скрипт попадают?
А у тебя title и text в скрипт попадают?
Спустя 3 минуты, 47 секунд (13.12.2010 - 13:29) SnowWind написал(а):
Да, попадают
Спустя 1 минута, 50 секунд (13.12.2010 - 13:31) kovaldm написал(а):
Только сейчас заметил.
if ($result = 'true') {echo "успешно";}
Спустя 4 минуты, 36 секунд (13.12.2010 - 13:36) SnowWind написал(а):
ну и?
Спустя 2 минуты, 20 секунд (13.12.2010 - 13:38) kovaldm написал(а):
У тебя условие всегда срабатывает и выводится "успешно". Надо использовать оператор сравнения "==" вместо "=".
И после запроса воткни это:
И после запроса воткни это:
echo mysql_error();
Спустя 4 минуты, 7 секунд (13.12.2010 - 13:42) SnowWind написал(а):
А... да это я сам тупанул...это описка, там нет оператора присвоения там стоит == (равно)