Php вывести данные по дате

Php вывести данные по дате

SELECT field1,filed2 FROM table ORDER BY date DESC

результат скрипта пишите в массив, после перебираете его циклом.
Или задача состоит в чем то ином?)

как вы написали, это понятно что отсортировать по дате с наименьшего, и используя тот же while вывести. а я не могу сообразить как правильно сделать что бы под датой группировались записи за одно число. не хочется if’ы и другие переменные лепить. хотя всё же склоняюсь что другого выхода нет

Придётся-таки завести ещё 1 переменную, там же, в цикле. Инициализировать её в 0 до цикла. Потом в цикле делать такую проверку — если переменная равна дате, то не выводить дату, если не равна — вывести дату и приравнять к ней переменную.
Записи выводить в любом случае.
В этом случае дата быдет выводиться только тогда, когда она изменяется, т.е. получится, что у вас записи будут «группироваться» по дням.

$ndate = » ;
while ( $row = mysql_fetch_assoc ( $q_ret )) $date = gmdate ( «Y-m-d» , $row [ ‘date’ ]);
if ( $ndate != $date ) echo $date . «
» ;
$ndate = $date ;
>
echo $row [ ‘record’ ]. «
» ;
>

Читайте также:  Фабричный метод паттерн java

Придётся-таки завести ещё 1 переменную, там же, в цикле. Инициализировать её в 0 до цикла. Потом в цикле делать такую проверку — если переменная равна дате, то не выводить дату, если не равна — вывести дату и приравнять к ней переменную.
Записи выводить в любом случае.
В этом случае дата быдет выводиться только тогда, когда она изменяется, т.е. получится, что у вас записи будут «группироваться» по дням.

я это выше и описал. я думал может быть есть более «красивый» способ.
ну раз ни кто ни чего не подсказал — пусть будет так.

Источник

Выборка c условием по дате в mysql БД через PHP

Одной из самой сложной работы в php считаю запросы в mysql по дате. Во-первых, не всегда логически просто понять что нужно выбрать если у нас сложные условия, типа: выбрать все даты из БД, которые больше такого-то отрезка времени, но меньше текущей даты увеличенной на 25 дней. Во-вторых, возникают другие проблемы от формата до самих запросов.

Начнем с формата хранения даты в БД

Вспомните тип поля timestamp, у него формат времени такой: гггг-мм-дд чч:мм:сс, например: 2017-11-05 14:23:05. Рекомендую использовать в своих базах именно этот формат, т.к. это стандарт. За счет него можно будет выгружать только время или дату, или одновременно то и другое. Не обязательно тип поля брать timestamp, можно использовать обычный text.

Примеры mysql запросов

Теперь рассмотрим практические примеры выборок по дате с учетом того, что дата записана в формате гггг-мм-дд чч:мм:сс:

1. Выбираем все записи в диапазоне: дата в БД < текущей
select * from ruefz_jcomments where DATE(date)

2. Выбираем данные за текущий месяц: дата в БД > от 1 числа этого месяца и дата < 1 числа следующего месяца
select id from tab where date > LAST_DAY(CURDATE()) + INTERVAL 1 DAY — INTERVAL 1 MONTH and date < DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 1 DAY)
Расшифровка: выбрать все id записи, в которых дата > последний день месяца сегодняшней даты + 1 день — 1 месяц и дата < последний день месяца сегодняшней даты + 1 день

3. Выбираем данные за текущий месяц, год и день не учитывается (%c месяц 1-12, %e дни 1-31 в mysql; n — месяц 1-12, j дни 1-31 в PHP )
select id from tab where DATE_FORMAT(date, ‘%c’)='».date(‘n’).»‘

4. За текущую неделю
select id from tab where date > DATE_SUB(CURDATE(), INTERVAL (DAYOFWEEK(CURDATE()) -1) DAY) and date < DATE_ADD(CURDATE(), INTERVAL (9 - DAYOFWEEK(CURDATE())) DAY)

5. выбираем все записи в диапазоне: (текущая — 10 дней) < дата в БД < текущая дата
select * from ruefz_jcomments where DATE(date) = DATE_SUB(NOW(), INTERVAL 10 DAY)

По этим примерам вам будет понятно, как составлять свои решения. Зачастую, при работе с датами вам потребуется использовать запросы DATE_ADD – прибавление, DATE_SUB — вычитание, CURDATE() — сегодняшняя дата, NOW() — сегодняшняя дата и время.

Изменить формат вывода времени в mysql

Если из БД надо взять дату в другом формате, мы можем изменить ее на «лету», для обработки на php скриптах:

DATE_FORMAT(date,format) — Форматирует величину date в соответствии со строкой format.

Пример:
$result = mysql_query(«SELECT DATE_FORMAT(‘1997-10-04 22:23:01’, ‘%d.%m.%Y %H:%i:%S’) AS datess FROM csv»);
while ($row=mysql_fetch_array($result)) echo $row[«datess»].»
«; >//05.11.2017 14:23:55

В последнем примере мы приводим дату из БД в читаемый вид для пользователя.

Источник

Как выводить данные из базы данных, по дате?

slo_nik

Доброй ночи.
Подправьте код в вопросе, чтобы легче было читать.
Используйте оператор WHERE в запросе к таблице базы данных.

Дмитрий, Здравствуйте. Подправил. Проблема в том, что значение из бд не приходит, то есть запрос проходит, но значение не возвращается. Использую запрос WHERE

slo_nik

$result=mysql_query("SELECT * FROM income_expense_history ")
$data = $_GET["date"]; if(isset($data))< $result = mysql_query("SELECT * FROM income_expense_history WHERE time = $data"); >else

FanatPHP

Попробуйте так. Во-первых input в форме должен иметь name (допустим day). Чтобы поле в $_GET[‘day’] приходило.

if(isset($_GET['day']) < $date = new DateTime( $_GET['day'] ); $dateTimstamp = $date->getTimestamp(); > $result=mysql_query("SELECT * FROM income_expense_history WHERE `date`(как у вас поле называется)= $dateTimstamp");

Здравствуйте. Спасибо за ответ, проблема в том, что значение из бд не приходит, то есть запрос проходит, но значение не возвращается

KevinSmash, откройте инструмент разработчика, f12 (ctrl+shisft+i в хроме), обновите страницу и во вкладке network посмотрите запрос к БД.
Обычно, если ошибка, он выделяется красным. Во вкладке response будет ошибка.

Не обижайтесь, но Ваш код — mysql_query уже безнадежно устарел.
Внимание Данное расширение устарело, начиная с вер.
Так что может быть все, что угодно

$result = mysql_query( ваш запрос ); if (!$result) < die('Неверный запрос: ' . mysql_error()); > if(mysql_num_rows($res) > 0) < while($row = mysql_fetch_assoc($res)) < echo ' . перечисляете нужные поля ' > >
$row['income']$row['поле с датой']

dk-web, когда проверяю через инструмент разработчика, то запрос приходит на эту же страницу. Приходит в responce сама страница и её код. Никаких ошибок нет

KevinSmash, тогда дайте больше информации о структуре файлов. где форма, где обработчик.
Так очень сложно вам помочь. Вообще, если про дату забыть, код то работает?

$data = $_GET["date"]; //echo $data; if(isset($data))< $result = mysql_query("SELECT * FROM income_expense_history WHERE time = $data"); >else < $result = mysql_query("SELECT * FROM income_expense_history"); >//$result - ассоциированный массив, т.е. таблички, у которой есть названия столбцов //узнаем, сколько в массиве $result строчек $n=mysql_num_rows($result); //вывод на страничку в виде таблицы echo " "; //вывод построчно for($i=0;$i<$n;$i++) echo"; echo "
Время Приход Расход Комментарий Автор
",mysql_result($result,$i,time), "",mysql_result($result,$i,income), "",mysql_result($result,$i,expense), "",mysql_result($result,$i,comment), "",mysql_result($result,$i, author), "
"; ?>

Это запрос на выборку из базы.
И при этом запросе значений приходят пустые как на втором скриншоте5cdae5391fe0e956023281.jpeg 5cdae542cd596674687393.jpeg

$result = mysql_query("SELECT * FROM income_expense_history WHERE time = $data"); if (!$result)

нужно посмотреть какую ошибку выдает.
Потом. Надо стивить или одинарный кавычки или `,

Ладно, сейчас докрутим. Последний вопрос. Дайте пример как хранится дата в базе данных.
2019-02-03 00-00-00? Вы сказали timestamp, но тут могут быть нюансы.

dk-web, В базе поле time: 2019-05-13 19:59:06. Тип: timestamp. По умолчанию: CURRENT_TIMESTAMP.
Сделал как вы написали, ошибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near » at line 1

$data = $_GET["date"]; if(isset($data)) < $result = mysql_query(SELECT * FROM `income_expense_history` WHERE DATE(`time`) = $data); if (!$result) < die('Неверный запрос: ' . mysql_error()); >>else < $result = mysql_query("SELECT * FROM `income_expense_history`"); > if(mysql_num_rows($res) > 0) < while($row = mysql_fetch_assoc($res)) < echo ' . перечисляете нужные поля ' > >
$row['income']$row['time']

Источник

Php вывести данные по дате

Первым шагом вы должны естественно определиться, что вам требуется!?

Например каждая дата повторяется каждый месяц, кроме 31(через месяц) и 29 февраля

или же каждый год уникальная дата, будет показываться 1 раз в год.

Либо же сделать условие. что вообще в зависимости от даты, 29 февраля данные будут показываться каждые 4 года.

Поэтому самое логичное в переменную получить то, что нам требуется! Например функция date нам позволяет это сделать!

Если нам требуется уникальная дата в году, то тогда создадим переменную, которая будет генерировать сегодняшний день вместе с месяцем.

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

Вывод данных в зависимости от одной даты в году

Из выше приведенных данных нам нужно создать условие для вывода данных в определенную дату, дата может быть вообще любая!

Выбираем дату, пусть это будет 23 февраля

Создаем условие вывода информации в зависимости от даты:

Во внутрь ставим например простой вывод строки через echo:

И соответственно, что код будет срабатывать только один раз в году. 23 февраля.

Пример скрипта : вывод информации в зависимости от определенной одной даты!

Как выводить информацию, картинку в зависимости от нескольких дат!?

Предположим, что нам нужно выводить какую-то информацию в зависимости от нескольких дат!

Предположим, что это будет период времени от 25 декабря до 10 января, мы пойдем хитрым путем мы в условии пропишем если это месяц равен 1, то это январь( date(‘m’)==1 ) и дата меньше или равно 10 date(‘d’) , точно такое повторяем с декабрем

И далее выводим требуемую информацию в зависимости от нескольких дат, соберем весь код вместе:

По данному принципу унас на сайте выводится информация в зависимости от даты.

Выводить информацию в зависимости от дня в разнобой даты.

Предположим, что нам требуется выводить какую-то информацию в зависимости от даты в разнобой!

Опять помещаем в переменную нашу дату:

Создаем массив с датами, в которые дни нам требуется что-то выводить;

И нам еще будет нужна функция in_array, которая и проверит присутствие сегодня в нашем массиве.

$days_array = array(«01-01» , «20-05» , «30-05» );

if (in_array( $today, $days_array )) < Действие >

Автоматическое изменение количества лет на сайте php

Страница выводится по поисковому запросу :»Автоматическое изменение количества лет на сайте php«, чтобы разобраться в данном вопросе нам понадобится:

Когда вы говорите — «Автоматическое изменение количества лет на сайте php» — что конкретно вы имеете ввиду, потому, что такое можно понять неоднозначно.

Если вам нужен вывод текущего года, то это делается очень просто! нам понадобится :

+ Один из вариантов вывода на экран echo

Результат «Автоматическое изменение количества лет на сайте php»

Выше идущий пункт — это лишь часть изначального вопроса:

автоматическое изменение количества лет на сайте php вывод в div

Вообще с вопросом : «автоматическое изменение количества лет на сайте php» — надеюсь выше вы разобрались. теперь с выводом в div.

Здесь немного мне непонятно, а какая разница вывода вообще в любую часть html? А если выводить в тег span(или в любой другой тег?), то это бюудет отличаться? Ну да ладно. бог с вами. вернемся к вопросу «автоматическое изменение количества лет на сайте php вывод в div».

Берем выше использованный код и помещаем его в div, единственная загвоздка, которая может вам встретиться — это включить php в html(если у вас не включено)

Источник

Оцените статью