Я пытаюсь выбирать данные ежемесячно и ежедневно. Я пробовал, как ...
для ежедневного
function participantsDaily()
{
global $wpdb;
$businesses = $wpdb->prefix.'businesses';
$usersTable = $wpdb->base_prefix . "users";
$userMetaTable = $wpdb->base_prefix . "usermeta";
$employeeTable = $wpdb->prefix.'employees';
$userAmount = $wpdb->prefix.'business_payments';
return $wpdb->get_results($wpdb->prepare("SELECT b.name, bu.first_name, bu2.last_name, ut.user_email, emp.created_at, bu4.amount, bu3.coupon_code, bu5.cancel, bu7.refund, bu6.refernce, emp.user_id from $employeeTable emp, $businesses b, $usersTable ut
LEFT JOIN (Select um.user_id, um.meta_value as first_name From $userMetaTable um where meta_key='first_name') bu ON (ut.ID = bu.user_id)
LEFT JOIN (Select um2.user_id, um2.meta_value as last_name From $userMetaTable um2 where um2.meta_key='last_name') bu2 ON (ut.ID = bu2.user_id)
LEFT JOIN (Select um3.user_id, um3.meta_value as coupon_code From $userMetaTable um3 where um3.meta_key='coupon_code') bu3 ON (ut.ID = bu3.user_id)
LEFT JOIN (Select ua.user_id, ua.amount From $userAmount ua ) bu4 ON (ut.ID = bu4.user_id)
LEFT JOIN (Select um4.user_id, um4.meta_value as cancel From $userMetaTable um4 where um4.meta_key='cancel') bu5 ON (ut.ID = bu5.user_id)
LEFT JOIN (Select um5.user_id, um5.meta_value as refernce From $userMetaTable um5 where um5.meta_key='refernce') bu6 ON (ut.ID = bu6.user_id)
LEFT JOIN (Select um6.user_id, um6.meta_value as refund From $userMetaTable um6 where um6.meta_key='refund') bu7 ON (ut.ID = bu7.user_id)
WHERE DATE(created_at) = CURDATE() AND b.id = emp.business_id AND ut.id= emp.user_id AND b.is_active=1 " , $dateCondString));
/*WHERE DATE(created_at) = CURDATE() AND b.id = emp.business_id AND ut.id= emp.user_id AND b.is_active=1 " , 0));*/
} //end participantsDaily()
и для ежемесячного
// Access Daily Participants Details
function participantsMonthly() {
global $wpdb;
$businesses = $wpdb->prefix.'businesses';
$usersTable = $wpdb->base_prefix . "users";
$userMetaTable = $wpdb->base_prefix . "usermeta";
$employeeTable = $wpdb->prefix.'employees';
$userAmount = $wpdb->prefix.'business_payments';
return $wpdb->get_results($wpdb->prepare("SELECT b.name, bu.first_name, bu2.last_name, ut.user_email, emp.created_at, bu4.amount, bu3.coupon_code, bu5.cancel, bu7.refund, bu6.refernce, emp.user_id from $employeeTable emp, $businesses b, $usersTable ut
LEFT JOIN (Select um.user_id, um.meta_value as first_name From $userMetaTable um where meta_key='first_name') bu ON (ut.ID = bu.user_id)
LEFT JOIN (Select um2.user_id, um2.meta_value as last_name From $userMetaTable um2 where um2.meta_key='last_name') bu2 ON (ut.ID = bu2.user_id)
LEFT JOIN (Select um3.user_id, um3.meta_value as coupon_code From $userMetaTable um3 where um3.meta_key='coupon_code') bu3 ON (ut.ID = bu3.user_id)
LEFT JOIN (Select ua.user_id, ua.amount From $userAmount ua ) bu4 ON (ut.ID = bu4.user_id)
LEFT JOIN (Select um4.user_id, um4.meta_value as cancel From $userMetaTable um4 where um4.meta_key='cancel') bu5 ON (ut.ID = bu5.user_id)
LEFT JOIN (Select um5.user_id, um5.meta_value as refernce From $userMetaTable um5 where um5.meta_key='refernce') bu6 ON (ut.ID = bu6.user_id)
LEFT JOIN (Select um6.user_id, um6.meta_value as refund From $userMetaTable um6 where um6.meta_key='refund') bu7 ON (ut.ID = bu7.user_id)
WHERE DATE(created_at) > DATE_SUB(NOW(), INTERVAL 1 MONTH) AND b.id = emp.business_id AND ut.id= emp.user_id AND b.is_active=1 " , 0));
} //end participantsMonthly()
Эти два кода функции такие же, за исключением даты дня и месяца. Я пробовал вот так
if($monthly) {
$dateCondString = 'DATE(created_at) > DATE_SUB(NOW(), INTERVAL 1 MONTH)';
} else {
$dateCondString = 'DATE(created_at) = CURDATE()';
}
, когда я выбираю ежедневно, он будет показывать ежедневные данные, а при выборе лунного месяца он будет отображать ежемесячные данные. Моя проблема в том, что я пишу две функции, и максимальный код такой же, но мы можем писать в одной функции