как передать значение и показать список заголовков?

#php

#php

Вопрос:

я повторяю что-то вроде следующего в файле (test.php ).

 ....
201105
201106
201107
201108
201109
201110
....
  

код выводит его:

 $months = 10; //count of months 
$date = date_create( 'now' );
echo date_format( $date, 'Y M' );
for ( $i = 0; $i < $months; $i   ) {
    date_sub( $date , date_interval_create_from_date_string( '1 months' ) );
    echo date_format( $date, 'Y M' );
}
  

выше приведен архив за год и месяц. теперь я хочу, чтобы, когда пользователь нажимал на год-месяц. затем на текущей странице отображается заголовок каждой статьи со списком, относящимся к году-месяцу. я знаю, что должен использовать переданное значение в моем запросе к базе данных, чтобы выбрать название каждой статьи.время создания каждой статьи такое 15806927473 . но я не знаю, как передать значение. когда пользователь нажимает на год-месяц. и использовать переданное значение в моем sql-запросе.
Спасибо.

код запроса sql:

 $result=mysql_query("select title from node where  a > created_time > b ");
  

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

базой данных является mysql.

Ответ №1:

158... Значением, скорее всего, является временная метка unix, которая представляет собой количество секунд с 1 января 1970 года. Вы не указываете, в какой базе данных вы находитесь, поэтому не могу помочь вам должным образом. Однако, предполагая, что вы используете MySQL, вы можете легко конвертировать временные метки и значения даты / времени с помощью FROM_UNIXTIME() и UNIX_TIMESTAMP() .

Вы не указываете, как генерируются значения вашего года / месяца, но не особенно сложно выполнить некоторые манипуляции со строками, чтобы превратить ‘201105’ в ‘2011-05-01 00:00:00’, которые вы можете передать в MySQL в качестве значения даты / времени для сравнения в базе данных.

Что касается вашей конструкции a > c > b, это синтаксическая ошибка. Вы бы хотели, чтобы это выглядело как:

 ... WHERE (a > created_time) AND (a > b)
  

Комментарии:

1. я думаю, что a, b известны. потому что a — это первый день месяца.b — последний день месяца. но последний день каждого месяца может отличаться. как их передать?

2. Не делайте это на основе дней месяца. Попробуйте сделать что-то вроде where (Month(created_time) = 5) and (Year(created_time) = 2011) , что избавляет от необходимости вычислять фактические дни.

3. MySQL имеет очень хороший выбор функций для обработки даты / времени / форматирования: dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html