2016-07-08 5 views
1

ImデータベースでACF Proを使用してwp_postmeta私は2 meta_keydich_vu_%_name_servicedich_vu_%_price_serviceを持っていました。両方とも価値があったので、どのようにしてそれをクエリして()として返すことができますか?または、MySQLがそれを処理できない場合、どうすればこれらのクエリの2つの配列をこのように1つにマージできますか?ここMySql照会または1にアレイをマージする

array(objects(['name_service'] => Test,['price_service'] => 9999)) 

は、私はあなたの助けのために

function getAllFaqs() { 
global $wpdb; 
    $results = $wpdb->get_results($wpdb->prepare( 
    "SELECT DISTINCT meta_value FROM {$wpdb->prefix}posts,{$wpdb->prefix}postmeta WHERE meta_key LIKE %s AND post_name = %s", 
    'dich_vu_%_name_service', 
    'bang-gia-dich-vu' 
)); 
    $results2 = $wpdb->get_results($wpdb->prepare( 
    "SELECT DISTINCT meta_value FROM {$wpdb->prefix}posts,{$wpdb->prefix}postmeta WHERE meta_key LIKE %s AND post_name = %s", 
    'dich_vu_%_price_service', 
    'bang-gia-dich-vu' 
)); 

    $array = array(); 
    foreach ($results as $result) { 
     $array[]['name_service'] = $result->meta_value; 
    } 
    $array = $array; 
    $array2 = array(); 
    foreach ($results2 as $result2) { 
     $array2[]['price_service'] = $result2->meta_value; 
    } 
    $array2 = $array2; 
    $array3 = array_combine($array,$array2); 

感謝をしようとした私のコードです!

答えて

0

連合は(両方の結果セットが同じ列数と同じ型を持っているし、ためにしなければならないことに注意してください)あなたは2つのクエリを組み合わせることができ、あなたの友達です:

$query1 = $wpdb->prepare( 
    "SELECT DISTINCT meta_value FROM {$wpdb->prefix}posts,{$wpdb->prefix}postmeta WHERE meta_key LIKE %s AND post_name = %s", 
    'dich_vu_%_name_service', 
    'bang-gia-dich-vu' 
); 
$query2 = $wpdb->prepare( 
    "SELECT DISTINCT meta_value FROM {$wpdb->prefix}posts,{$wpdb->prefix}postmeta WHERE meta_key LIKE %s AND post_name = %s", 
    'dich_vu_%_price_service', 
    'bang-gia-dich-vu' 
); 

$results = $wpdb->get_results($query1.' UNION '.$query2); 

をチェックdocs

PS:私はwordpressの知っているが、prepareは、あなたのようにそれを作るなぜそんなに間でUNIONが

0

を動作するはず消毒クエリ文字列を返すことを見ていません非常に複雑です。単にワードプレス標準

global $wpdb; 
// Instead of passing post slug, you need to use post id here 
$myvals1 = get_post_meta($post->ID,"dich_vu_%_name_service", true); 
$myvals2 = get_post_meta($post->ID,"dich_vu_%_price_service", true); 

$obj = new StdClass(); 
$obj->name_service = $myvals1; 
$obj->price_service = $myvals2; 

$res = array($obj); 

// result 
array(1) { 
    [0]=> 
    object(stdClass)#245 (2) { 
    ["name_service"]=> 
    string(4) "Test" 
    ["price_service"]=> 
    string(4) "9999" 
    } 
} 
+0

配列として次のように使用する(1){ [0] => オブジェクト(はstdClass)#2145(2){ [ "name_serviceは"] => アレイ(6){ [0] => オブジェクト(はstdClass)#2157(1){ [ "meta_value"] => 列(3) "ACF" } [1] => オブジェクト(はstdClass)#2156(1) {["meta_value"] => string(24) "トリプルテスト" } } ["price_service"] => 01 (6) "15000" } [1] => オブジェクトアレイ(6){ [0] => オブジェクト(はstdClass)#2151(1){ [ "meta_value"] => 列( stdClass)#2150(1){ [ "meta_value"] => 列(7) "19000" } } } } – ngocdung

+0

それは私がこのようにしたいthat.Butように私を示した:配列(2){ [0] => オブジェクト(はstdClass)#2145(2){ [ "name_serviceは"] =>列(3) "ACF" [ "price_service"] =>列(6) "150000" } ["name_service"] =>文字列(3) "トリプルテスト" ["price_service"] => string(6) "150000" } } – ngocdung

+0

「bang-gia-dich-vu」投稿に「dich_vu _%_ name_service」のような数のキーがあることを教えてください。 1つの投稿のメタキーはユニークなので、すべての投稿の2つのキーをすべてマージしますか? – Arul

関連する問題