-1

PHP と Yii フレームワークを使用して、アーカイブ リスト (WP Web サイトのものとほぼ同じ機能) を作成する必要があります。どうすればこれを達成できるかをずっと考えていましたが、役に立つものは何も思いつきませんでしたので、ここであなたの助けを求めています。たとえば、mysql テーブルは次のようになります。

タイムスタンプ列の値を使用して、投稿された異なる月の投稿のみを選択するにはどうすればよいですか (その月に投稿されたすべての投稿を一覧表示するそれぞれのアーカイブ ページへのリンクとして、どの月を一覧表示する必要があるかを判断できます) ?

ところで、PHP でそれを行う方法について私を助けるだけで十分です。コントローラやモデルなどを持っていないため、Yii でコードを動作させるのは明らかに不可能なので、苦労する必要はありません。 )

4

1 に答える 1

0

私の質問に反対票を投じた人へのGj、あなたは本当に役に立ちました. こういうサイトにもヘイターはいるんだろうな、悲しい。とにかく、それらについては十分です。ここに、以前存在することを知らなかった新しいMySQL関数を学習して今日思いついたものがあります:) MySQLDATE_FORMAT(date_column,'%format')を使用して、目的の月、年、日、またはその他の「部分」を選択するだけです日付が UNIX タイムスタンプであっても。これは、少しいじった後に思いついた単純なコードです。

$query = "SELECT DISTINCT DATE_FORMAT(creation_date,'%M') as creation_month, DATE_FORMAT(creation_date,'%Y') as creation_year FROM posts";
$result = $connection->query($query);

if($result) {
    while($row = $result->fetch_assoc()) {
        $archiveArray[] = $row;
    } 
    print_r($archiveArray);

    echo '<h3>Our Archives by month</h3>';
    echo '<ul>';?>

    <?php foreach($archiveArray as $archiveRecord) : ?>
        <li>
            <a href=""><?php echo $archiveRecord['creation_month'] . ' ' . $archiveRecord['creation_year']; ?></a>      
        </li>
    <?php endforeach; 
    echo '</ul>';

}

このコードが行うことは、DB から「creation_date」列のタイムスタンプを「読み取り」、%M および %Y (PHP の date() 関数の書式設定と同様) で指定され、割り当てられた目的の「書式」内に配置することです。その場で、craetion_month および creation_year と呼ばれる架空の列名に変換します。DISTINCT の選択に注意してください。特定の月の各投稿で月を繰り返さないためです。その後、順序付けされていないリストにアンカーとしてリストします。これが主な問題でした。残りは簡単です:)

于 2013-07-20T15:47:18.840 に答える