在一年内收集所有活动

时间:2019-06-23 作者:Nikita Kagan

你好,你能帮我吗?我不能这样做:

2018年我的当前输出:

2018年活动1,2018年活动2,我想在不重复2018年活动的情况下完成这项工作

我的代码:

while($myrow=mysqli_fetch_array($result)){
$var = $myrow[\'event_date\'];
    echo"
<p><b>" . date("Y", strtotime($var)) . "</b></p>
   <p> " . date("d.m.Y", strtotime($var)) ."
   "?>
    <a class="link" href="article.php?event_id=<?php echo $myrow[\'event_id\'];?>"><?php echo $myrow[\'article_title\'];?></a>
<b><a class="link" href="speaker.php?speaker_id=<?php echo $myrow[\'speaker_id\'];?>"><?php
    echo"
    ".$myrow[\'speaker_degree\']."
    ".$myrow[\'speaker_name\']."
    ".$myrow[\'speaker_surname\']."
    ".$myrow[\'speaker_patronymie\']."
    </a></b></p>
";}
我的查询:

SELECT * FROM event_t\\n" . "JOIN event_speaker_article_t ON event_t.event_id=event_speaker_article_t.event_id\\n" . "JOIN article_t ON event_speaker_article_t.article_id=article_t.article_id \\n" . "JOIN speaker_t ON event_speaker_article_t.speaker_id=speaker_t.speaker_id\\n" . "ORDER by event_date

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

好的,您的事件已经按日期排序,所以您所要做的就是忽略标题,之前的事件是同一年的。

让我们也尽量避免所有意大利式的代码,您已经发布了这些问题:

<?php
    $previous_year = false;
    while ( $myrow = mysqli_fetch_array($result) ) :
        $event_datetime = strtotime($myrow[\'event_date\']);
?>
    <?php if ( date(\'Y\', $event_datetime) != $previous_year ) : ?>
    <p><b><?php echo date(\'Y\', $event_datetime); ?></b></p>
    <?php endif; ?>

    <p><?php echo date(\'d.m.Y\', $event_datetime); ?>
        <a class="link" href="article.php?event_id=<?php echo esc_attr($myrow[\'event_id\']); ?>">
            <?php echo esc_html($myrow[\'article_title\']); ?>
        </a>
        <b><a class="link" href="speaker.php?speaker_id=<?php echo esc_attr($myrow[\'speaker_id\']); ?>">
            <?php echo esc_html($myrow[\'speaker_degree\']); ?>
            <?php echo esc_html($myrow[\'speaker_name\']); ?>
            <?php echo esc_html($myrow[\'speaker_surname\']); ?>
            <?php echo esc_html($myrow[\'speaker_patronymie\']); ?>
        </a></b>
    </p>
<?php
        $previous_year = date(\'Y\', $event_datetime);
    endwhile;
?>
另一件事是。。。你不应该使用mysqli_* WP中的功能。已经有了WPDB 类来连接到DB并执行DB查询,您真的应该改用它。

相关推荐

正确使用整个php类输出缓冲区

对于我的ajax弹出式登录,我想对整个oop php类使用输出缓冲区。我只想从类的开头开始缓冲,然后在类结束时结束缓冲class Wp_Ajax_Popup_Login { public function __construct() { // Output Buffering for whole class ob_start(); add_action( \'after_switch_theme\', array( $