|
|
|
| Отправляю вот такой запрос
<?
$res = mysql_query("UPDATE table SET value = '1' WHERE name= '".$_SESSION['login']."' AND id IN (1,2,3)");
?>
|
Чего то не пойму, результат запроса - true, а изменений в таблице не происходит! :-((
P.S. Значения по которым проходит выборка существуют! | |
|
|
|
|
|
|
|
для: Artemy
(08.02.2005 в 13:39)
| | Хм... тут без конкретных записей не скажешь... (результат будет всегда true, если нет ошибки в синтаксисе SQL-запроса). Т.е. давайте по полкам разложим:
1) id IN (1,2,3) - обновиться могут только три записи в таблице id которых равны соотвественно, либо 1, либо 2, либо 3.
2) Ограничение name= '".$_SESSION['login']." говорит, что обновиться может только одна запись, name в которой равно login из сессии.
3) AND - говорит, что обновление произойдёт только в том случае, если выполнены условия 1) и 2)
Теперь остаётся проверить равно ли в записях с id =1, 2 или 3 поле name значению из сессии (кстати, проверьте не пусто ли $_SESSION['login']), если этого не соблюдается то всё нормально, такова и должна быть реакция. | |
|
|
|
|
|
|
|
для: cheops
(08.02.2005 в 14:00)
| | Самое интересное, что все эти значения и id и $_SESSION['login'] существуют!
А если вырезать из запроса следующию часть , "name = '".$_SESSION['login'."' AND", то все работает!
Вы скажете: " Так правильно, значит $_SESSION['login'] пусто !"
А вот и нет, сначала оно выводиться и не пусто, причем ей ничего не присваевается, а потом выполняется запрос! | |
|
|
|
|
|
|
|
для: Artemy
(08.02.2005 в 15:00)
| | Выведите всё же значение $_SESSION['login'] непосредственно перед таблицей - может быть так, что значение не подцепляется сессией, поэтому в скрипте, где происходит присвоение - значение видно, а во внешнем скрипте уже нет. | |
|
|
|
|
|
|
|
для: cheops
(08.02.2005 в 15:14)
| | Чего то я не понел!
Вот код, может покажете!?
<?PHP
session_start();
if(empty($_SESSION['login']))
{
print "<HTML><HEAD>\n";
print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=../enter.php'>\n";
print "</HEAD></HTML>\n";
exit();
}
include "../config.php";
$id = $_POST['type'];
if(empty($id))
{
echo "Вы не выбрали ни одной позиции!";
exit;
}
$query = "(";
foreach($id as $val) $query .= "$val,";
$query = substr($query, 0, strlen($query) - 1).")";
$sql = "UPDATE sklad SET reserved = '1', r_who = ' '
WHERE r_who = '".$_SESSION['login']."'
AND id IN ".$query
$res = mysql_query($sql);
if($res)
{
echo $sql;
}
else
{
echo "Ошибка при отображении страницы!";
exit;
}
?>
|
| |
|
|
|
|
|
|
|
для: Artemy
(08.02.2005 в 16:34)
| | Хм... сделайте проще - просто выведетите SQL-запрос в окно браузера - как он выглядит?
Кстати, то что в конце формирования переменной $sql нет точки с запятой - это опечатка? | |
|
|
|
|
|
|
|
для: cheops
(08.02.2005 в 17:17)
| | Да это опечатка!
Вот результат выполнения скрипта!
Но при этом изменений в БД нет!
UPDATE sklad SET reserved = '1', r_who = ' ' WHERE r_who = 'Афанасьев Артём' AND id IN (33)
|
| |
|
|
|
|
|
|
|
для: Artemy
(08.02.2005 в 17:26)
| | Зря, кстати, к имени привязываетесь, лучше бы сравнивать первичный ключ...
Элемент
r_who = 'Афанасьев Артём'
|
в какой кодировке и в какой кодировке имя в базе данных? Не могут они отличаться? | |
|
|
|
|
|
|
|
для: cheops
(08.02.2005 в 19:11)
| | Честно говоря не знаю, но наверное в windows-1251 ...!
А имя мне нужно принцепиально, id это и есть первичный ключ! | |
|
|
|
|
|
|
|
для: Artemy
(08.02.2005 в 21:36)
| | Блин, я опять протупил! :-))
Я не в том поле ищю имя!
Спасибо за помощь и извините, что потревожил! | |
|
|
|
|
|
|
|
для: Artemy
(08.02.2005 в 13:39)
| |
<?
$res = mysql_query("UPDATE table SET value = '1' WHERE name= '".$_SESSION['login']."' AND id IN (1,2,3)");
?>
|
Для начала, я не совсем понял какую таблицу Вы обновляете ???
Где указано имя таблицы и указано ли оно вообще ??? | |
|
|
|
|
|
|
|
для: Bagration
(08.02.2005 в 15:02)
| | А table это что такое!? | |
|
|
|
|
|
|
|
для: Artemy
(08.02.2005 в 16:30)
| | таблица | |
|
|
|
|
|
|
|
для: Atom
(08.02.2005 в 20:09)
| | Да нет, это он меня спрашивал ! Я протупил с его первым кодом, он там не указывал название таблицы и столбцы со значениями, а привел просто пример кода (это я уже потом понял). | |
|
|
|