|
|
|
| Здравствуйте, проблема встала при выборке данных из нескольких таблиц(поиск уже юзал). В общем есть две таблицы:
-- Структура таблицы 'announcements_map'
--
DROP TABLE IF EXISTS 'announcements_map';
CREATE TABLE IF NOT EXISTS 'announcements_map' (
'id_map' int(11) NOT NULL auto_increment,
'id_rub' int(11) NOT NULL default '0',
'id_subrub' int(11) NOT NULL default '0',
PRIMARY KEY ('id_map')
) TYPE=MyISAM;
|
-------------------------------------------------------------
-- Структура таблицы 'announcements_rub'
--
DROP TABLE IF EXISTS 'announcements_rub';
CREATE TABLE IF NOT EXISTS 'announcements_rub' (
'id_rub' int(11) NOT NULL auto_increment,
'rub_name' varchar(30) binary NOT NULL default '',
PRIMARY KEY ('id_rub')
) TYPE=MyISAM;
|
от пользователя приходит запрос на удаление определенной рубрики(ее имя) из announcements_rub. Необходимо сначала удалить все записи из announcements_map, а затем уже из announcements_rub. Так сказать, для обеспечения целостности.
Вот код который юзаю():
$delrub - содержит текстовое значение рубрики
в следующем коде $delrub="Недвижимость"
if(!mysql_query("Delete from announcements_map where id_rub in(Select id_rub from announcements_rub where rub_name='$delrub')"))
echo mysql_error();
else
echo "ok";
exit;
|
-----------------------------------------------------
все это дело вываливается в следующее:
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 'Select id_rub from announcements_rub where rub_name='Недвижимос
|
rub_name='Недвижимос - именно так и вываливается...строка не закончена. Запрос вроде как написан правильно - занимаюсь SQL достаточно долго,но вот с такой проблемой столкнулся впервые. Прошу помощи. Заранее спасибо | |
|
|
|
|
|
|
|
для: Alexneo
(18.04.2006 в 00:51)
| | А версия MySQL какая? | |
|
|
|
|
|
|
|
для: Alexneo
(18.04.2006 в 00:51)
| | MySQL 4.0.17 | |
|
|
|
|
|
|
|
для: Alexneo
(18.04.2006 в 02:31)
| | хотелось бы конечно реализовать через этот запрос...но если не получится, то какие вы можете предложить пути для разрешения данной проблемы | |
|
|
|
|
автор: cheops (из кафе) (18.04.2006 в 09:17) |
|
|
для: Alexneo
(18.04.2006 в 02:31)
| | Хм... а вообще должён бы работать... если никто не опередит, как доберусь до машины с MySQL версии выше 4.1 попробую воспроизвести ситуацию. | |
|
|
|
|
|
|
|
для: cheops (из кафе)
(18.04.2006 в 09:17)
| | ну что вы мне посоветуете? | |
|
|
|
|
|
|
|
для: Alexneo
(19.04.2006 в 01:57)
| | А если пробел поставить между in и открывающей скобкой (
if(!mysql_query("Delete from announcements_map where id_rub in (Select id_rub from announcements_rub where rub_name='$delrub')"))
echo mysql_error();
else
echo "ok";
exit;
|
| |
|
|
|
|
|
|
|
для: cheops
(19.04.2006 в 16:13)
| | попробовал. не помогло | |
|
|
|