За последние 24 часа нас посетили 43876 программистов и 1813 роботов. Сейчас ищут 1497 программистов ...

вывод новостей

Тема в разделе "PHP для новичков", создана пользователем Prettynim, 9 дек 2010.

  1. Prettynim

    Prettynim Активный пользователь

    С нами с:
    28 ноя 2009
    Сообщения:
    45
    Симпатии:
    0
    Адрес:
    Ставрополь
    Подскажите пожалуйста, вот я вывожу новости, формирую большой массив в котором много новостей, все с разными датами,новостей с одинаковыми датами около пяти, мне нужно разбить этот массив так чтобы в одном массиве были новости по одному дню, т.е. разбить по дате. Но как разбить не могу сообразить, если у меня количество новостей по одной дате разное. А мне нужно сделать календарь, разбить все новости по датам.
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    это делается через базу данных.

    идея проста:

    1. календарь - выборка подсчёта количества новостей, сгруппированных по дате
    2. новости за день - для каждой даты производится отдельная выборка
     
  3. Prettynim

    Prettynim Активный пользователь

    С нами с:
    28 ноя 2009
    Сообщения:
    45
    Симпатии:
    0
    Адрес:
    Ставрополь
    (мне новости за последние 7 дней вывести в календаре нужно) если немного подробнее то это будет блок с ссылками в виде даты работающими как переключатели, работать все будет на java, т.е. у меня сразу все новости должны быть выведены на страницу, просто не хотелось делать 7 запросов к бд, т.к. они все будут сделаны для одной страницы.
     
  4. Prettynim

    Prettynim Активный пользователь

    С нами с:
    28 ноя 2009
    Сообщения:
    45
    Симпатии:
    0
    Адрес:
    Ставрополь
    подскажите вот у меня в бд даты в формате 2004-12-15 09:18:36, а мне чтобы за определенный день вывести нужно например запрос LIKE '2004-12-15%'
     
  5. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    WHERE DATE_FORMAT(date,"%Y-%m-%d") = '2004-12-15'
     
  6. Prettynim

    Prettynim Активный пользователь

    С нами с:
    28 ноя 2009
    Сообщения:
    45
    Симпатии:
    0
    Адрес:
    Ставрополь
    cпасибо
     
  7. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    PHP:
    1. <?php
    2. $newsArrs=array();
    3. foreach($allNews as $news){
    4.     $newsArrs[$news['date']][]=$news;
    5. }
    6.  
     
  8. Prettynim

    Prettynim Активный пользователь

    С нами с:
    28 ноя 2009
    Сообщения:
    45
    Симпатии:
    0
    Адрес:
    Ставрополь
    а конструкция
    Код (Text):
    1. $newsArrs[$news['date']][]=$news;
    что мне даст? :oops: не могу разобраться с вложенным массивом. Получится что каждой дате создается отдельный массив?
     
  9. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Ага.
    например, $newsArrs['2004-12-15'][0]['title'] - заголовок первой новости
     
  10. Prettynim

    Prettynim Активный пользователь

    С нами с:
    28 ноя 2009
    Сообщения:
    45
    Симпатии:
    0
    Адрес:
    Ставрополь
    Да, это то что нужно, спасибо.
     
  11. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    нет.

    1)В главном массиве($newsArrs) ключи элементов это не номера, а даты($newsArrs['2004-12-15']).
    2)Если нужны новости только за последние 7 дней, так и берите за последние семь дней, т.е. в массиве $allNews не должно быть лишних новостей.
    3)Чтобы перебрать массив необязательно использовать его ключи - можно использовать foreach.
     
  12. Prettynim

    Prettynim Активный пользователь

    С нами с:
    28 ноя 2009
    Сообщения:
    45
    Симпатии:
    0
    Адрес:
    Ставрополь
    С вложенными массивами путаница у меня произошла. Теперь понятно. Спасибо за помощь.