Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не работает ORDER BY

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
pantela
Отправлено: 14 Апреля, 2014 - 11:25:28
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Имеется запрос, не понимаю почему не работает при запросе сортировка ORDER BY name ASC Однако
CODE (sql):
скопировать код в буфер обмена
  1. SELECT u.uid AS id, u.name, up.group_name FROM users u LEFT JOIN `users_permissions` up USING(gid) WHERE up.STATUS = TRUE AND u.STATUS = TRUE AND NOT ISNULL(up.view_items) AND up.view_items-1 = 2 ORDER BY name ASC


Отредактировано модератором: Мелкий, 14 Апреля, 2014 - 12:06:25
заменил подсветку на sql
 
 Top
LIME
Отправлено: 14 Апреля, 2014 - 11:30:53
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




 up.view_items-1 = 2 
это нормально?
 
 Top
pantela
Отправлено: 14 Апреля, 2014 - 11:39:08
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Да вроде, у меня ENUM поле view_items с 3 значениями
 
 Top
LIME
Отправлено: 14 Апреля, 2014 - 11:53:27
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




up.view_items-155 = -152 
(Добавление)
результат изменился?

(Отредактировано автором: 14 Апреля, 2014 - 11:54:20)

 
 Top
Мелкий Супермодератор
Отправлено: 14 Апреля, 2014 - 12:12:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




pantela пишет:
LEFT JOIN `users_permissions` up USING(gid) WHERE up.STATUS = TRUE

left join в этом случае смысла не имеет, т.к. по условию where поле status не может быть null. Здесь должен быть просто join.
Это не ошибка, но просто некорректно.

Магия с view_items выглядит странно, согласен, но к сортировке всё-таки не относится.

pantela пишет:
не понимаю почему не работает при запросе сортировка ORDER BY name ASC

Почему вы считаете, что не работает сортировка? Приведите примеры данных.


-----
PostgreSQL DBA
 
 Top
pantela
Отправлено: 14 Апреля, 2014 - 12:44:07
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Хмм, через phpMyAdmin когда выполняю запрос, там сортировка работает, а в самом PHP скрипте не работает...
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. $this->_db->sql2array("SELECT u.uid AS id, u.name, up.group_name FROM users u LEFT JOIN `users_permissions` up USING(gid) WHERE up.status = TRUE AND u.status = TRUE AND NOT ISNULL(up.view_items) AND up.view_items-1 = 2 ORDER BY name ASC");


PHP:
скопировать код в буфер обмена
  1.         function sql2array($sql, $keyField='') {
  2.                 if((empty($sql)) || (!($query = $this->query($sql)))) return false;
  3.                 if($this->num_rows($query) < 1) return false;
  4.                 return $this->result2array($query, $keyField);
  5.         }
  6.  
  7.         function result2array($q, $keyField='') {
  8.                 $Result = array();
  9.                 while($Data = $this->fetch_array($q))
  10.                         if(empty($keyField)) $Result[] = $Data;
  11.                         else $Result[$Data[$keyField]] = $Data;
  12.                 $this->free_result($q);
  13.                 return $Result;
  14.         }
  15.  
  16.         function fetch_array($q, $result_type=MYSQL_ASSOC) {
  17.                 return mysql_fetch_array($q, $result_type);
  18.         }
  19.  
  20.         function free_result($q) {
  21.                 return mysql_free_result($q);
  22.         }
  23.  


Не могу понять где тут он переобразует, или игнорирует сортировку... Однако

P.S. Sorry что не проверил в phpMyAdmin...

(Отредактировано автором: 14 Апреля, 2014 - 13:27:27)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB