2

私はゲームのニュースウェブサイトを作っています。すべてのニュースの主題を見つけることができるページが欲しいです。そこで、多くのWebページと同じように使用することにしました。

例:

ここに画像の説明を入力してください

今はそういうものが欲しいのですが、どうやってそんな風にするのかわかりません。私は少し始めました、そしてあなたたちがこれで私を助けてくれることを願っています!

$query = mysql_query("SELECT * FROM `gb_news` order by `datetime` DESC");

while($news = mysql_fetch_array($query)) {

        echo $news['title'];
        echo $news['datetime']; 

}

これは本当に単純なコードですが、アーティカルがデータベースに新しい日付を持っているときに、最近どのように追加するかを知りたいだけです。

4

4 に答える 4

1

ループの外に日付を保存し、日付が変更された場合にのみタイトルを表示します。

$date = "";
while ($news = mysql_fetch_array($query)) {
    if ($news['datetime'] != $date) {
        $date = $news['datetime'];
        echo $date;
    }
    echo $news['title'];
}
于 2013-03-20T19:35:46.830 に答える
0

さて、あなたができることは、日付を保存し、日付が変わるたびにレイアウトを変更することです。

while($news = mysql_fetch_array($query)) {
  if(empty($date) || $date != date("format", $news['datetime'])){
     $date = date("format", $news['datetime']);
     //echo/print some html to show new section
  }  
  echo $news['title'];
  echo $news['datetime']; 
}

これにより、日付の比較が処理され、日付をいつ変更するかがわかります。「フォーマット」は、をエコー/印刷できるため、希望する日付フォーマットの種類を示します$date

PHPの日付

注意: PHP 5.5で廃止されたため、MySQL_*は使用しないでください。代わりにMySQLi_*またはPDOを使用してください

于 2013-03-20T19:36:26.903 に答える
0

このようなものがあなたのために働くかもしれません:

$query = mysql_query("SELECT * FROM `gb_news` order by `datetime` DESC");

$prevDate ='';
while($news = mysql_fetch_array($query))
{
    $tmpDate = DateTime::createFromFormat('Y-m-d H:i:s', $news['datetime']);
    if($prevDate!=$tmpDate)
    {
        $prevDate = $tmpDate->format('d/m/Y');
        echo '<h1>'.$prevDate.'</h1><hr />';
    }
    echo '<p>'.$tmpDate->format('H:i').' - '.$news['title'].'</p>';
}

これは、日時列がフォーマットYYYY-MM-DD hh:mm:ssであり、日付をとして表示したい場合を想定しています。もちろんDD/MM/YYYY、好みに合わせて編集してください。

また、 DateTimeクラスを使用するには、PHPのバージョンが5.3.0以上である必要があります

于 2013-03-20T19:43:03.250 に答える
0

あなたが何を成し遂げようとしているのか、私にはよくわかりません。含めた画像のようにデータを表示するには、MySQLまたはPHP(または実際には組み合わせ)のいずれかで同じ日付のアイテムをグループ化する必要があります。

何かのようなもの:

while ($news...) {

    // Get this article date
    $thisDate = new DateTime($news['datetime']) // Assuming this is a true datetime value

    // Compare this article date with previous article date to determine if we should start a new date header
    if (!empty($onDate) // We have previous articles to compare with
        && ($thisDate->format('l d F') == $onDate)) // This article date matches previous so keep in same group
    {
        echo $news['title'];
    } else { // No existing articles or new date = new header
        $onDate = $thisDate->format('l d F'); // See options: http://www.php.net/manual/en/function.date.php
        echo $onDate
        echo $news['title'];
    }

}
于 2013-03-20T19:43:48.327 に答える