繁体   English   中英

按值对查询结果进行排序

[英]Order results of a query by values

我正在尝试创建一个函数来填充带有事件的ajax日历。 我要从我的wordpress数据库中的自定义字段查询日期(格式为Ymd)。

        $metakey2 = 'jour';
        $jours = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey2) );
        if ($jours) {
            $years = substr($jours, 0, 4); // OUTPUT YEAR FROM DATE
            $months = substr($jours, 5, 2);  // OUTPUT MONTH FROM DATE
            $days = substr($jours, 7, 2); // OUTPUT DAY FROM DATE

                foreach $years as $year {
                    foreach $months as $month {

                        if ($y == $year AND $m == $month) {
                            $events = array(
                                foreach $days as $day {
                                    $day => array(
                                        0 => array(
                                            "0" => "Lorem ipsum dolor 111", 
                                        )
                                    );
                                }
                            );
                        }
                    }
                }   
        }

    `

我绝对不是专家,而且我已经尝试了好几个小时了...有人可以指出我正确的方向吗? 谢谢Manue

$metakey2 = 'jour';
$jours = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey2) );

// Chaeck the data returned isn't null, blank, 0-length array, etc.
if (!empty($jours)) {
    // Initialize events array
    $events = array();

    // Loop through the data
    foreach ($jours as $jour) {
        $year  = substr($jour, 0, 4); // OUTPUT YEAR FROM DATE
        $month = substr($jour, 5, 2); // OUTPUT MONTH FROM DATE
        $day   = substr($jour, 7, 2); // OUTPUT DAY FROM DATE

        // PROCESS YOUR DATA HERE
        ...
    }
}

关键是空检查后的foreach循环。 您需要遍历从db作为数组返回的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM