[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: UPDATE
SnowWind
Всем привет.

Не обновляются данные в 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..

Спустя 12 минут, 11 секунд (13.12.2010 - 12:26) SnowWind написал(а):
Ну если он выполнил запрос, стало быть должны появиться его ПОСЛЕДСТВИЯ, а в базе ничего лишнего нет. Никакой новой строки!
Ну ведь он же что-то тогда ОБНОВИЛ blink.gif

Спустя 2 минуты (13.12.2010 - 12:28) Renden написал(а):
SnowWind
UPDATE сам принимает решения обновлять ему или нет) Т.е если он строку такую не нашел он ничего с ней делать не будет, но сам запрос считаеться выполненым.
Новая строка это к INSERT INTO

Спустя 17 минут, 30 секунд (13.12.2010 - 12:46) SnowWind написал(а):
Ну и как тогда проверить добавил он что то или нет? Если весь смысл проверки теряется, даже если строку в зопросе - title заменить на - titles он всёравно выдаёт - TRUE что то тут всётаки не так huh.gif

Спустя 12 минут, 20 секунд (13.12.2010 - 12:58) Renden написал(а):
SnowWind
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 в скрипт попадают?

Спустя 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 написал(а):
А... да это я сам тупанул...это описка, там нет оператора присвоения там стоит == (равно)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.