postmeta table example走走meta_value'匹配「POST_ID」和「meta_key」,「meta_value」二合一
最終的結果是匹配的「POST_ID」陣列,由出席者的數量來分類的搜索時。我知道這是一個WP後端,但我必須在SQL中完成,沒有'get_posts'或任何與WordPress相關的東西。我想要做的是混亂,所以我會努力澄清。
我有什麼開始:
- $ check_post_ids - post_ids我需要檢查的原始數組
- $ START_DATE - 在'meta_value'每個事件的「 _StartDate'需要匹配。
我需要做什麼:
我需要檢查這三個post_ids,看看他們是否有匹配的開始日期。如果他們這樣做,我需要獲得從最高到最低數量的與會者排序的post_ids數組。
目前我打算多的SELECT和foreach()語句這樣做,但我覺得必須有這樣做(即一個選擇&的foreach())一個簡單的方法。這是我目前正在做的事情。我還沒有完成它,因爲我覺得必須有一個更簡單的方法來做到這一點。更新的SQL和任何幫助非常感謝!
$check_post_ids = array('484', '627', '982', '2435');
$start_date = '1963-10-20 19:30:00';
// iterate through array of post_ids and check if they have the same _StartDate
foreach($check_post_ids as $id){
$start_date_check = "SELECT * FROM `wp_postmeta` WHERE `post_id` =" . $id . " AND `meta_key` LIKE '_StartDate' AND `meta_value` = '" . $start_date . "'";
$start_date_check_result = mysqli_query($conn, $start_date_check);
// assign all post_ids with a matching _StartTime to a new array
if (mysqli_num_rows($start_date_check_result) > 0) {
while($row = mysqli_fetch_assoc($start_date_check_result)) {
$matching_post_ids[] = $row['post_id'];
// iterate through matching_post_ids array, get the _NumAttendees for each, and assign their id and _NumAttendees to an assoc array to be sorted
foreach($matching_post_ids as $id){
$attendees_check = "SELECT meta_value FROM wp_postmeta WHERE post_id = " . $id . " AND meta_key = '_ecp_custom_2'";
$attendees_check_result = mysqli_query($conn, $attendees_check);
if($upvotes_check > 0){
while($row = mysqli_fetch_assoc($attendees_check_result)){
$sort_by_attendees['id'] = $id;
$sort_by_attendees['attendees'] = $row['meta_value'];
$sort_by_attendees_array[] = $sort_by_attendees;
}
}
}
再次弄砸它,我可以看到我的代碼是各種各樣的重擊,但希望它可以幫助你獲得基本的想法。 – AndrewTelkamp