Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не работает запрос с "order by"  [new]
Kirill_ART
Member

Откуда:
Сообщений: 21
Подскажите пожалуйста,

Связываю во едино сайт на php 5.2.4, Apache 2.0.55 и MS Server 2000 Personal Edition (где база вся хранится).

При открытии стартовой странички получаю ошибку:
Warning: mssql_query() [function.mssql-query]: message: Column name 'BCP.id' is invalid in the ORDER BY clause because it is not contained in an aggregate function and there is no GROUP BY clause. (severity 16) in C:\Program Files\Apache Group\Apache2\htdocs\dsa\index.php on line 310

Вот сам запрос, располагающийся в index.php на строке 310:
$query=mssql_query("SELECT min(id) as 'номер' " From BCP ORDER BY id ASC");

Этот запрос работал, когда весь сайт был на MySQL.
Подскажите пожалуйста, в чем здесь ошибка?????

Заранее благодарен.
9 ноя 09, 08:45    [7899575]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
Supra93
Member

Откуда:
Сообщений: 8174
Kirill_ART,

SELECT min(id) as 'номер' From [BCP] --ORDER BY min(id) ASC
А сколько mysql записей выдавал на этот запрос???
9 ноя 09, 08:54    [7899591]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Kirill_ART
Подскажите пожалуйста,

Связываю во едино сайт на php 5.2.4, Apache 2.0.55 и MS Server 2000 Personal Edition (где база вся хранится).

При открытии стартовой странички получаю ошибку:
Warning: mssql_query() [function.mssql-query]: message: Column name 'BCP.id' is invalid in the ORDER BY clause because it is not contained in an aggregate function and there is no GROUP BY clause. (severity 16) in C:\Program Files\Apache Group\Apache2\htdocs\dsa\index.php on line 310

Вот сам запрос, располагающийся в index.php на строке 310:
$query=mssql_query("SELECT min(id) as 'номер' " From BCP ORDER BY min(id) ASC");

Этот запрос работал, когда весь сайт был на MySQL.
Подскажите пожалуйста, в чем здесь ошибка?????

Заранее благодарен.
Каждая строка результата запроса получается из нескольких строк таблицы с разными id.
Как же сервер может отсортировать по неизвестным величинам?

IMHO, если такое работает на MySQL, то у меня нет слов по поводу этой "СУБД".
9 ноя 09, 08:58    [7899599]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
Kirill_ART
Member

Откуда:
Сообщений: 21
Спасибо, supra93 и iap.
С изменением min(id) ошибка исчезла.

Теперь новая загагулина:
Запускается заглавная страница сайта, где Авторизация. Там несколько полей выбора, в которых отображаются данные запросов из БД, что на MSSQL. Все вроде все как нужно
НО: дальше этой страницы сайт не уходит - т.е. мы выбираем различных пользователей, вводим их пароли, жмем "Вход", страница обновляется и сайт снова прыгает на стартовую страницу, с установленными по умолчанию параметрами.

У меня есть предположение, что я что-то не до настроил в php.ini.
1. Я раскоментировал extension=php_mssql.dll
2. extension_dir="C:/php5/ext/" - директория, где располагается библиотека php_mssql.dll
3. Скопировал библиотеку php_mssql.dll в system32.

Может что еще пропустил?...

Как будто с MSSQL данные не передаются...
9 ноя 09, 09:21    [7899657]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
Supra93
Member

Откуда:
Сообщений: 8174
Kirill_ART,
Это вопрос не в этот форум уже.
Зачем order by в Вашем запросе?
9 ноя 09, 09:25    [7899669]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
Kirill_ART
Member

Откуда:
Сообщений: 21
Supra93, нам нужно вывести id-шные номера в порядке возрастания...
9 ноя 09, 09:35    [7899706]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Kirill_ART
Supra93, нам нужно вывести id-шные номера в порядке возрастания...
Ваш запрос всегда должен возвращать одно-единственное минимальное значение.
О каком возрастании идёт речь?
9 ноя 09, 09:49    [7899780]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
Supra93
Member

Откуда:
Сообщений: 8174
Kirill_ART
Supra93, нам нужно вывести id-шные номера в порядке возрастания...

SELECT min(id) as 'номер' From [BCP] ORDER BY min(id) ASC
Этот запрос отвечает вашим требованиям?
9 ноя 09, 09:51    [7899792]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
Supra93
Member

Откуда:
Сообщений: 8174
SELECT distinct top 1 min(id) as 'номер'  From [BCP] order BY min(id) ASC
вот так еще попробуйте
9 ноя 09, 09:53    [7899797]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
У меня запрос

SELECT min(id) as 'number'  From BCP ORDER BY id ASC

Отработал без ошибок и вернул 1 картеж…

Хотя он аналогичен
SELECT min(id) as 'number'  From BCP

PS ошибка наверно в лишних двойных кавычках у вас + одинарные не надо удваивать?

PSS
SELECT @@version 


'5.0.45-community-nt'


---------------------------------------------------------
- Ну вы тут и нафлудили! - сказал Геракл, зайдя на Авгиев форум..
9 ноя 09, 10:06    [7899882]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
Хм… только сейчас заметил, что вы мигрируете на 2000, тем не менее, это не снимает вопроса про кавычки и оригинальную ошибку…

---------------------------------------------------------
- Ну вы тут и нафлудили! - сказал Геракл, зайдя на Авгиев форум..
9 ноя 09, 10:08    [7899899]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
Kirill_ART
Member

Откуда:
Сообщений: 21
DENIS_CHEL, не совсем Вас понял:

мой запрос: $query=mssql_query("SELECT min(id) as 'номер' From BCP ORDER BY min(id) ASC");
(про лишние двойные кавычки - это я описался :-))

Вы имеете в виду, что нужно писать так:
$query=mssql_query("SELECT min(id) as "номер" From BCP ORDER BY min(id) ASC");?

Или весь запрос должен быть в одинарных кавычках?
9 ноя 09, 11:44    [7900480]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
Слово номер в должно быть в одинарных кавычках…

SELECT min(id) as ‘номер’ From BCP ORDER BY min(id) ASC

Но вы пишите запрос в php, следовательно он должен быть оформлен

SELECT min(id) as ‘номер’ From BCP ORDER BY min(id) ASC

$query = ' SELECT min(id) as ‘номер’ From BCP ORDER BY min(id) ASC';

Я не пишу на PHP, но разве там не надо указывать, что ковычка не спец символ?

Вот по-моему:

$query = ' SELECT min(id) as \'номер\' From BCP ORDER BY min(id) ASC';

?

---------------------------------------------------------
- Ну вы тут и нафлудили! - сказал Геракл, зайдя на Авгиев форум..
9 ноя 09, 11:54    [7900550]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
Kirill_ART
Member

Откуда:
Сообщений: 21
Нет, на одинарные кавычки php ругается.

Вообще, не подскажите где можно почитать: "Как правильно оформлять в php запросы к MSSQL"?
9 ноя 09, 12:01    [7900618]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
Supra93
Member

Откуда:
Сообщений: 8174
Kirill_ART,

может быть в руководстве к php?
Так все - таки - зачем ORDER BY?
9 ноя 09, 12:03    [7900631]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
Glory
Member

Откуда:
Сообщений: 104760
Kirill_ART


Вообще, не подскажите где можно почитать: "Как правильно оформлять в php запросы к MSSQL"?

В форуме по php наверное ?

PS

$query=mssql_query("SELECT min(id) as [номер] From BCP ORDER BY min(id) ASC");
9 ноя 09, 12:03    [7900637]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
Kirill_ART
Member

Откуда:
Сообщений: 21
Согласен, Supra93.
Order by здесь совсем не нужен.

Спасибо, Glory, за [номер], полезно было узнать. Хотя, по-моему 'номер' - тоже можно...
9 ноя 09, 12:17    [7900753]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Kirill_ART
Согласен, Supra93.
Order by здесь совсем не нужен.

Спасибо, Glory, за [номер], полезно было узнать. Хотя, по-моему 'номер' - тоже можно...
Скажу больше. MSSQL поймёт даже просто номер или номер=min(id)
9 ноя 09, 12:20    [7900772]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62917
А зачем, когда надо делать просто по правилам [] и не иметь проблем ни сейчас, ни в будущем.

--
http://www.podgoretsky.com
9 ноя 09, 12:28    [7900839]     Ответить | Цитировать Сообщить модератору
 Re: Не работает запрос с "order by"  [new]
Glory
Member

Откуда:
Сообщений: 104760
Kirill_ART


Спасибо, Glory, за [номер], полезно было узнать. Хотя, по-моему 'номер' - тоже можно...

Вы не поверите, по синтаксису TSQL можно даже вообще без кавычек
9 ноя 09, 12:30    [7900861]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить