Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] mysql_query. Не работает UPDATE (http://forum.oszone.net/showthread.php?t=128019)

Artem-Samsung 08-01-2009 02:36 1000190

mysql_query. Не работает UPDATE
 
Похоже мне нужны опытные телепаты.
Реально не могу понять ничего, уже второй день.

Есть запрос в БД. Обновляет строчку в таблице.

Не работает, когда вывожу этот же сформировавшийся запрос на экран и копирую в phpmyadmin,
то работает. Ошибок Apache никаких не выдает.
Другие скрипты работают. к БД конектится сто процентов. Другие скрипты в этом же положениии выполняется, а этот нет.

Обычно я отлаживал выводом на экран а потом phpmyadmin, а сейчас даже не знаю.
Как бы отследить в чем загвоздка?

PHP код:

mysql_query("
UPDATE `de_teachers_schedule` 
SET `title` = '$_POST[title_mon_1]', `group` = '$_POST[group_mon_1]', `room` = '$_POST[room_mon_1]' 
WHERE `time` = '8:30' and `day`= 'Понеділок' and `teacher`='$_SESSION[id]';
UPDATE `de_teachers_schedule` 
SET `title` = '$_POST[title_mon_2]', `group` = '$_POST[group_mon_2]', `room` = '$_POST[room_mon_2]' 
WHERE `time` = '10:25' and `day`= 'Понеділок' and `teacher`='$_SESSION[id]';
UPDATE `de_teachers_schedule` 
SET `title` = '$_POST[title_mon_3]', `group` = '$_POST[group_mon_3]', `room` = '$_POST[room_mon_3]' 
WHERE `time` = '12:20' and `day`= 'Понеділок' and `teacher`='$_SESSION[id]';
UPDATE `de_teachers_schedule` 
SET `title` = '$_POST[title_mon_4]', `group` = '$_POST[group_mon_4]', `room` = '$_POST[room_mon_4]' 
WHERE `time` = '14:15' and `day`= 'Понеділок' and `teacher`='$_SESSION[id]';
UPDATE `de_teachers_schedule` 
SET `title` = '$_POST[title_mon_5]', `group` = '$_POST[group_mon_5]', `room` = '$_POST[room_mon_5]' 
WHERE `time` = '16:10' and `day`= 'Понеділок' and `teacher`='$_SESSION[id]';
"
);

echo 
"
UPDATE `de_teachers_schedule` 
SET `title` = '$_POST[title_mon_1]', `group` = '$_POST[group_mon_1]', `room` = '$_POST[room_mon_1]' 
WHERE `time` = '8:30' and `day`= 'Понеділок' and `teacher`='$_SESSION[id]';
UPDATE `de_teachers_schedule` 
SET `title` = '$_POST[title_mon_2]', `group` = '$_POST[group_mon_2]', `room` = '$_POST[room_mon_2]' 
WHERE `time` = '10:25' and `day`= 'Понеділок' and `teacher`='$_SESSION[id]';
UPDATE `de_teachers_schedule` 
SET `title` = '$_POST[title_mon_3]', `group` = '$_POST[group_mon_3]', `room` = '$_POST[room_mon_3]' 
WHERE `time` = '12:20' and `day`= 'Понеділок' and `teacher`='$_SESSION[id]';
UPDATE `de_teachers_schedule` 
SET `title` = '$_POST[title_mon_4]', `group` = '$_POST[group_mon_4]', `room` = '$_POST[room_mon_4]' 
WHERE `time` = '14:15' and `day`= 'Понеділок' and `teacher`='$_SESSION[id]';
UPDATE `de_teachers_schedule` 
SET `title` = '$_POST[title_mon_5]', `group` = '$_POST[group_mon_5]', `room` = '$_POST[room_mon_5]' 
WHERE `time` = '16:10' and `day`= 'Понеділок' and `teacher`='$_SESSION[id]';
"



dmitryst 08-01-2009 02:59 1000197

Artem-Samsung, ИМХО, с кодировками что-то не то (не выполняется "and")

Artem-Samsung 08-01-2009 03:58 1000220

Добавлю. Генерируется такое чудо
PHP код:

UPDATE `de_teachers_scheduleSET `title` = 'Урок 2', `group` = 'ХА-51', `room` = 'аудиторія 256, 4 корпус1' WHERE `time` = '8:30' and `day`= 'Понеділок' and `teacher`='19'
UPDATE `de_teachers_scheduleSET `title` = 'Урок 2', `group` = 'ХА-61', `room` = 'аудиторія 256, 4 корпус' WHERE `time` = '10:25' and `day`= 'Понеділок' and `teacher`='19'
UPDATE `de_teachers_scheduleSET `title` = 'Урок 3', `group` = 'ХА-61', `room` = 'аудиторія 256, 4 корпус' WHERE `time` = '12:20' and `day`= 'Понеділок' and `teacher`='19'
UPDATE `de_teachers_scheduleSET `title` = 'Урок 4', `group` = 'ХА-61', `room` = 'аудиторія 256, 4 корпус' WHERE `time` = '14:15' and `day`= 'Понеділок' and `teacher`='19'
UPDATE `de_teachers_scheduleSET `title` = 'Урок 5', `group` = 'ХА-61', `room` = 'аудиторія 256, 4 корпус' WHERE `time` = '16:10' and `day`= 'Понеділок' and `teacher`='19'

dmitryst, кодировка таблицы cp1251_general_ci
Хотя вариант, поверим штатному телепату, попробую обозвать day по-английски :)

Artem-Samsung 08-01-2009 04:17 1000223

Поменял на английское, заменил and на AND
Та же картина.
Что интересно, при тех же условиях, выполняется такое:

PHP код:

$sql_title_mon_1 mysql_query("SELECT `id`, `title`, `group`, `room` FROM de_teachers_schedule WHERE `time`='8:30' AND 
        `day`='friday' AND `teacher`='"
.$_SESSION['id']."'"); 
        
$title_mon_1 mysql_fetch_array($sql_title_mon_1); 

И отображается замечательно:

http://kxtp.deykun.com/index.php?teacher=19&page=1

Вообщем подскажите, пожалуйста, какие есть методы отследить глюк?

Sham 08-01-2009 13:29 1000470

Artem-Samsung, mysql_query работает только с одиночными запросами, и разделители в конце не приветствуются (RTM). Т.е. в одном запросе прокатит только один UPDATE/INSERT/SELECT... Нужно составить один запрос с многочисленными действиями, либо несколько mysql_query подряд...

Artem-Samsung 09-01-2009 01:26 1001114

Sham, спасибо, тогда все сейчас переделаю )


Время: 07:15.

Время: 07:15.
© OSzone.net 2001-