-3

これが私のPHP/SQLリクエストです

<?php $events = $wpdb->get_results( 
    "
    SELECT * 
    FROM  `wp_em_events` 
    LIMIT 5
    // HERE'S MY ORDER BY DATE
    "
);

$dt = new DateTime($event->event_start_date);
$formattedDate = $dt->format('d M Y');

foreach ( $events as $event ) 
{

echo '<div class="home-event">';
    echo $formattedDate;
    echo $event->event_name;
echo '</div>';

}

?>

列「 event_start_date 」を含むテーブルによると、値は次のようになります。

2013-03-27 
2013-04-03
2013-03-31

これらの日付までにイベントを注文したい (私たちに最も近い日付が最初)

シングルにしてみました

ORDER BY event_start_date DESC

しかし、それは私の要求を「燃やす」

------- ボーナス質問 --------

次のようにするためにイベントをインクリメントするにはどうすればよいですか:

<div class="home-event-1">
<div class="home-event-2">
<div class="home-event-3">
...

どうもありがとうございました !!

4

1 に答える 1

0

はのORDER BY来ます。あなたが望むでしょう:LIMIT

SELECT
    * 
FROM
    `wp_em_events` 
ORDER BY
    event_start_date DESC
LIMIT 5

また、間違った場所で日付を取得しています。反復にある必要があります。

foreach ( $events as $event ) 
{

  $dt = new DateTime($event->event_start_date);

  $formattedDate = $dt->format('d M Y');

  // ...

増分については、次のとおりです。

foreach ( $events as $key => $event ) 
{

    echo '<div class="home-event-' . ($key + 1) . '">';
    echo $formattedDate;
    echo $event->event_name;
    echo '</div>';

}

$eventsもちろん、 は準配列ではないと仮定します。もしそれが:

$i = 0;

foreach ( $events as $event ) 
{

    echo '<div class="home-event-' . ++$i . '">';
    echo $formattedDate;
    echo $event->event_name;
    echo '</div>';

}
于 2013-03-27T18:33:57.247 に答える