Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Помогите составить запрос


Автор: FiRe 1.7.2009, 11:37
Выполняю в phpMyAdmin такой запрос:
Код

SELECT @npr:= cat_priority FROM pr_categories WHERE cat_parent_id=0 AND cat_priority>0 LIMIT 1; 
INSERT INTO pr_categories SET cat_name='newCat', cat_parent_id=0, cat_priority=((@npr+2)/2); 


и никаких проблем. 
пользуюсь mysql_query(). Выдает ошибку:

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 ';INSERT INTO pr_categories SET cat_name='ererewr', cat_parent_id=0, cat_priority' at line 1

В чем проблема и как ее можно решить?

Автор: lelik133 1.7.2009, 11:44
проблема в том что вы пытаетесь выполнить сразу 2 запроса. 
разбейте на два mysql_query()

Автор: gta4kv 1.7.2009, 12:02
Или сделайте вложенный SELECT. (Хотя так конечно лучше не делать  smile)

Автор: MoLeX 1.7.2009, 12:27
mysqli вроде умеет два выполнять

Автор: skyboy 1.7.2009, 13:13
mysql_query выполняет только один запрос.
потому:
а) встреченный разделитель ";" приводит к ошибке синтаксиса.
б) после разбития на два запроса, переменная @npr не будет передаваться между запросами.
решения два:
а) разбираться с mysqli
б) сменить логику и передавать значение переменной через PHP.

Автор: FiRe 1.7.2009, 14:41
skyboy,  после разбития все нормально работает(все передается)))))!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)