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 :: Выборка из базы

 PHP.SU

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


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

> Без описания
jonston
Отправлено: 22 Декабря, 2011 - 23:51:19
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


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




Здравствуйте!Есть таблица questions.В ней есть поля: id , name , mail , question , modrate
Я думаю понятно за что отвечает каждое поле.Поле moderate отвечает одобрено к публикации или нет.Так вот как мне построить sql запрос что бы выбрать сначала по WHERE moderate = 0 ORDER BY id DESC а потом остальные ORDER BY id DESC.Объясню проще.Делаем выборку что бы сначала отображались ждущие модерации вопросы по убыванию id , а потом все остальные также по убыванию id.Благодарю!


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
tuareg
Отправлено: 22 Декабря, 2011 - 23:55:02
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. ...ORDER BY moderate,id
  3.  
 
 Top
jonston
Отправлено: 23 Декабря, 2011 - 00:02:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


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




tuareg пишет:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. ...ORDER BY moderate,id
  3.  

Спасибо тебе добрый посетитель!)))
(Добавление)
А как сделать так что бы ожидающие модерации ORDER BY ASC а остальные DESC?


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
tuareg
Отправлено: 23 Декабря, 2011 - 00:22:45
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. ORDER BY  moderate ASC,id DESC
  3.  

(Отредактировано автором: 23 Декабря, 2011 - 00:23:06)

 
 Top
jonston
Отправлено: 23 Декабря, 2011 - 00:23:46
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


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




tuareg пишет:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. ORDER BY  moderate ASC,id DESC
  3.  

не так не получается


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
tuareg
Отправлено: 23 Декабря, 2011 - 01:03:16
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




Я глянул. Т.е хочется, чтобы неотмодерированные были по возрастанию, а другие по убыванию?
 
 Top
PATCH
Отправлено: 23 Декабря, 2011 - 04:21:25
Post Id



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


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


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




CODE (htmlphp):
скопировать код в буфер обмена
  1. $row1= mysql_query ("SELECT * from questions WHERE moderate = 0 ORDER BY id DESC");
  2. $row2= mysql_query ("SELECT * from questions WHERE moderate = 1 ORDER BY id DESC");
  3.  
  4. while($mas1=mysql_fetch_array($row1))
  5. {
  6. echo $mas1['id'].$mas1['name'].$mas1['mail'].$mas1['question'].$mas1['modrate']
  7. }
  8. while($mas2=mysql_fetch_array($row2))
  9. {
  10. echo $mas1['id'].$mas1['name'].$mas1['mail'].$mas1['question'].$mas1['modrate'];
  11. }

в один запрос хз как) за ошибки php кода сори) не давно вернулся к php)) давно не практиковался)

или вот так придумал)

CODE (htmlphp):
скопировать код в буфер обмена
  1. $row1= mysql_query ("SELECT * from questions ORDER BY id DESC");
  2.  
  3. while($mas1=mysql_fetch_array($row1))
  4. {
  5. if($mas1['moderate'] == 1)  //проверка на модерацию) во так думаю подойдет без всяких лишних запросов  к бд)
  6. {echo $mas1['id'].$mas1['name'].$mas1['mail'].$mas1['question'].$mas1['modrate'];}
  7. else
  8. {echo $mas1['id'].$mas1['name'].$mas1['mail'].$mas1['question'].$mas1['modrate'];}
  9. }
  10.  

(Отредактировано автором: 23 Декабря, 2011 - 11:41:47)

 
 Top
tuareg
Отправлено: 23 Декабря, 2011 - 05:39:40
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




Нет так не получится. Можно попробовать формировать массив при выводе из MySQL, а потом его сортировать
 
 Top
jonston
Отправлено: 23 Декабря, 2011 - 10:06:54
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


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




tuareg пишет:
Я глянул. Т.е хочется, чтобы неотмодерированные были по возрастанию, а другие по убыванию?

Да именно так.Для формирования массива нужно два запроса к базе делать.Одним запросом никак по ходу не получится?


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
Мелкий Супермодератор
Отправлено: 23 Декабря, 2011 - 10:59:08
Post Id



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


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


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




CODE (SQL):
скопировать код в буфер обмена
  1. ORDER BY moderate=0, id DESC, moderate=1, id ASC


-----
PostgreSQL DBA
 
 Top
jonston
Отправлено: 23 Декабря, 2011 - 12:12:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


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




Мелкий пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. ORDER BY moderate=0, id DESC, moderate=1, id ASC

Теперь получается так:
сначала выводятся одобренные вопросы по убыванию потом ожидающие по убыванию
(Добавление)
http://codemaster[dot]com[dot]ua/admin/


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
EuGen Администратор
Отправлено: 23 Декабря, 2011 - 12:32:03
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




CODE (sql):
скопировать код в буфер обмена
  1. ORDER BY -1 * moderate * id


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
jonston
Отправлено: 23 Декабря, 2011 - 12:41:02
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


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




EuGen пишет:
CODE (sql):
скопировать код в буфер обмена
  1. ORDER BY -1 * moderate * id

все верно только одобренные вверху а нужно наоборот!Спасибо


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
EuGen Администратор
Отправлено: 23 Декабря, 2011 - 12:42:43
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




CODE (sql):
скопировать код в буфер обмена
  1. ORDER BY -1 * (!moderate) * id

- видимо, я наоборот понял смысл поля.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
jonston
Отправлено: 23 Декабря, 2011 - 12:45:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


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




EuGen пишет:
CODE (sql):
скопировать код в буфер обмена
  1. ORDER BY -1 * (!moderate) * id

- видимо, я наоборот понял смысл поля.


А как это трактовать?Сложно это все!


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB