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 :: Подскажите, пож., как сделать выборку mySQL:

 PHP.SU

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


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

> Описание: WHERE ...
hanns-g
Отправлено: 27 Сентября, 2011 - 01:42:50
Post Id


Новичок


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


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




Добрый вечер.

В БД есть столбцы с записями и столбец с датой добавления
формат даты:
ГГГГ-ММ-ДД ЧЧ:ММ:СС

мне надо отобрать только те записи, которие соответствуют сегодняшнему дню,
при этом чтобы не учитывался год и время создания

то есть, отобрать только по числу и месяцу: ММ-ДД


'WHERE ( a.created = '. date(*.'-'.m.'-'.d.' '.*.':'.*.':'.*) .')';
* - не учитываются

можно как то это организовать ?

извените, если это глупый вопрос, но у меня действительно не получается,
уже два дня мучаюсь
 
 Top
White
Отправлено: 27 Сентября, 2011 - 07:41:51
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. 'SELECT * FROM `a`.`created` WHERE DAYOFYEAR(`a`.`created`)='.$d.' AND MONTH(`a`.`created`)='.$m

я думаю вы догадались, что $m, $d это порядковые номера месяца и дня в году.
можно поинтересоваться а зачем это надо?


-----
if(time()>1356048000) die();
 
 Top
Мелкий Супермодератор
Отправлено: 27 Сентября, 2011 - 09:18:32
Post Id



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


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


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




White пишет:
можно поинтересоваться а зачем это надо?

Например, для новостей: "этот день в прошлом".

White, меня несколько (т.е. совсем) смущает запрос, выбирается из бд a, таблицы created по условию поля created в таблице a. Сходи не знаю куда, принеси неизвестно что? Подмигивание


-----
PostgreSQL DBA
 
 Top
hanns-g
Отправлено: 27 Сентября, 2011 - 11:53:53
Post Id


Новичок


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


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




Добрый день

Огромное спасибо за ответ!!! Сейчас попробую, ато вчера лег в 5 утра...

Это не так даже к новостям - как, что то типа календаря
даты всякие - праздники...
(Добавление)
Мелкий пишет:
White, меня несколько (т.е. совсем) смущает запрос, выбирается из бд a, таблицы created по условию поля created в таблице a. Сходи не знаю куда, принеси неизвестно что?


ну это часть запроса, мен надо сделать саму выборку
(Добавление)
если вставляю эту часть кода - не выводит вобще ничего
пробовал по разному - ничего

AND DAYOFYEAR(a.created = '.$d.') AND MONTH( a.created ='.$m.')

помогите плиз рзобраться, это код из джумловского модуля, вот весь листинг:

PHP:
скопировать код в буфер обмена
  1.  
  2. class modNewsBoxHelper
  3. {
  4.         function getList(&$params)
  5.         {
  6.                 global $mainframe;
  7.  
  8.                 $db                     =& JFactory::getDBO();
  9.                 $user           =& JFactory::getUser();
  10.                 $userId         = (int) $user->get('id');
  11.  
  12.                 $count          = (int) $params->get('count', 5);
  13.                 $catid          = trim( $params->get('catid') );
  14.                 $secid          = trim( $params->get('secid') );
  15.                 $show_front     = $params->get('show_front', 1);
  16.                 $aid            = $user->get('aid', 0);
  17.  
  18.                 $contentConfig = &JComponentHelper::getParams( 'com_content' );
  19.                 $access         = !$contentConfig->get('show_noauth');
  20.  
  21.                 $nullDate       = $db->getNullDate();
  22.  
  23.                 $date =& JFactory::getDate();
  24.                 $now = $date->toMySQL();
  25.                
  26.                 $d = date(d);
  27.                 $m = date(m);
  28.                 $where          = 'a.state = 1'
  29.                         . ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )'
  30.                         . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'
  31.                        
  32.                         . ' AND DAYOFYEAR(a.created = '.$d.') AND MONTH( a.created ='.$m.')'
  33.                        
  34.                         /*
  35.                         . 'AND ( a.created = '.date(Y.'-'.m.'-'.d.' '.H.':'.i.':'.s).')'
  36.                         */
  37.                         ;
  38.  
  39.                 // User Filter
  40.                 switch ($params->get( 'user_id' ))
  41.                 {
  42.                         case 'by_me':
  43.                                 $where .= ' AND (created_by = ' . (int) $userId . ' OR modified_by = ' . (int) $userId . ')';
  44.                                 break;
  45.                         case 'not_me':
  46.                                 $where .= ' AND (created_by <> ' . (int) $userId . ' AND modified_by <> ' . (int) $userId . ')';
  47.                                 break;
  48.                 }
  49.  
  50.                 // Ordering
  51.                 switch ($params->get( 'ordering' ))
  52.                 {
  53.                         case 'm_dsc':
  54.                                 $ordering               = 'a.modified DESC, a.created DESC';
  55.                                 break;
  56.                         case 'c_dsc':
  57.                         default:
  58.                                 $ordering               = 'a.created DESC';
  59.                                 break;
  60.                 }
  61.  
  62.                 if ($catid)
  63.                 {
  64.                         $ids = explode( ',', $catid );
  65.                         JArrayHelper::toInteger( $ids );
  66.                         $catCondition = ' AND (cc.id=' . implode( ' OR cc.id=', $ids ) . ')';
  67.                 }
  68.                 if ($secid)
  69.                 {
  70.                         $ids = explode( ',', $secid );
  71.                         JArrayHelper::toInteger( $ids );
  72.                         $secCondition = ' AND (s.id=' . implode( ' OR s.id=', $ids ) . ')';
  73.                 }
  74.  
  75.                 // Content Items only
  76.                 $query = 'SELECT a.*, ' .
  77.                         ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.
  78.                         ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.
  79.                         ' FROM #__content AS a' .
  80.                         ($show_front == '0' ? ' LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id' : '') .
  81.                         ' INNER JOIN #__categories AS cc ON cc.id = a.catid' .
  82.                         ' INNER JOIN #__sections AS s ON s.id = a.sectionid' .
  83.                         ' WHERE '. $where .' AND s.id > 0' .
  84.                         ($access ? ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid : '').
  85.                         ($catid ? $catCondition : '').
  86.                         ($secid ? $secCondition : '').
  87.                         ($show_front == '0' ? ' AND f.content_id IS NULL ' : '').
  88.                         ' AND s.published = 1' .
  89.                         ' AND cc.published = 1' .
  90.                         ' ORDER BY '. $ordering;
  91.                 $db->setQuery($query, 0, $count);
  92.                 $rows = $db->loadObjectList();
  93.  
  94.                 $i              = 0;
  95.                 $lists  = array();
  96.                 foreach ( $rows as $row )
  97.                 {
  98.                         if($row->access <= $aid)
  99.                         {
  100.                                 $lists[$i]->link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid));
  101.                         } else {
  102.                                 $lists[$i]->link = JRoute::_('index.php?option=com_user&view=login');
  103.                         }
  104.                         $lists[$i]->title = htmlspecialchars( $row->title );
  105.                        
  106.                         $lists[$i]->text = preg_replace('/{([a-zA-Z0-9\-_]*)\s*(.*?)}/i', '', $row->introtext);
  107.        
  108.                     $lists[$i]->text = str_replace( '&nbsp;', '', $lists[$i]->text );
  109.                     $lists[$i]->text = htmlspecialchars( strip_tags( $lists[$i]->text ) );
  110.                     $lists[$i]->text = implode(" ", array_slice(explode(" ", $lists[$i]->text), 0, $params->get('chcount')+1));
  111.  
  112.                        
  113.                         $lists[$i]->created = JHTML::_('date', $row->created);
  114.                         $i++;
  115.                 }
  116.  
  117.                 return $lists;
  118.         }
  119. }
  120.  
  121.  

(Добавление)
32 строка
(Добавление)
без этой строчки выводит последнюю запись
(Добавление)
Слёзы в глазах Люди помогите пож.
 
 Top
hanns-g
Отправлено: 27 Сентября, 2011 - 20:13:46
Post Id


Новичок


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


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




ЛЮДИ ПОДСКАЖИТЕ КАК СДЕЛАТЬ
ОЧЕНЬ ПРОШУ
 
 Top
savenko
Отправлено: 29 Сентября, 2011 - 15:00:03
Post Id


Новичок


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


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




Пиши запрос такого вида
$query="SELECT * FROM название таблицы WHERE cтолбец где даты LIKE '%".date('-m-d')."%'";
Произойдет следующее в твоем запросе:
Запрос выберет все что будет совпадать в стобце даты со значением, на пример "-09-29"
 
 Top
hanns-g
Отправлено: 29 Сентября, 2011 - 15:23:30
Post Id


Новичок


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


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




Большое спасибо за ответ!!!
странно вчера мне писало, что эта тема удалена

и я создал новую:
http://forum.php.su/topic.php?fo...8&topic=3972
 
 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