2017-05-05 69 views
0

我有一個WordPress數據庫。在postmeta表格中,我們爲每個帖子設置了3個不同的值。我們更新我們的主題3次,並在每次帖子數量彼此不同。我想做這個;有在不同的行中一個表值:SQL收集來自不同行的值並更新新行

交ID 10值1:更好的視圖計數3455
交ID 10值2:post_stats 522
交ID 10值3:post_views_count 52

我想總結三個並更新結果post_views_count。

我該怎麼做,我應該用什麼sql?

我認爲沒有選擇使用SQL fol 1000發佈它應該是一個php代碼。但我無法想象我應該使用它的sql。

EDITED


後,我做出一些改變和研究,我發現了一個解決方案:

<?php $my_meta = bf_get_post_meta('better-views-count');?> 
<BR> 
<?php $my_meta2 = bf_get_post_meta('post_stats');?> 
<BR> 
<?php $my_meta3 = bf_get_post_meta('post_views_count');?> 


BETTER: 
<?php echo $my_meta ?> 
<BR> 
POST STATS:<?php echo $my_meta2 ?><BR> 
POST VIEW COUNT:<?php echo $my_meta3 ?> 
<BR> 
TOTAL: 
<?php 
$a=array("a"=>$my_meta,"b"=>$my_meta2,"c"=>$my_meta3); 
$total_sum = array_sum($a); 

echo $total_sum; 
?> 


<?php 



$row = $wpdb->get_row($wpdb->prepare("SELECT * FROM wp_postmeta WHERE post_id = $post->ID;")); 

if ($row) { 
    $qry_result = $wpdb->update( 
     wp_postmeta, 
     array( 
      'id' => $row->id, 
        'post_id' => $post->ID , 
        'meta_key' => "better-views-count", 
        'meta_value' => $total_sum 
         ), 
       array(
        '%s', 
        '%s', 
        '%s' 
        ) 
    ); 
} else { 
    $qry_result = $wpdb->insert( 
     wp_postmeta, 
     array( 
        'post_id' => $post->ID, 
        'meta_key' => "better-views-count", 
        'meta_value' => $total_sum 
     ), 
     array( 
        '%s', 
        '%s', 
        '%s' 
        ) 
    ); 
} 

if(false !== $qry_result) { 
$qry_result = true; 
} 

$response = array('success' => $qry_result, 'data' => 'hello'); //if $data is set 
echo $qry_result; 

?> 

結果:

更好:
POST STATS:37
POST VIEW COUNT:909
TOTAL:946

,它應該更新,並應


更好:946
POST STATS:37
POST瀏覽次數:909
總計:1892年

回答

0

使用$wpdb來計算總計每篇文章。

global $wpdb; 

$results = $wpdb->query("SELECT meta_value FROM wp_postmeta WHERE post_id IN ('".$post_id."') AND meta_key IN ('better-views-count','post_stats','post_views_count') "); 

print_r($results); 

只需將您的$post_id就位。

+0

我做了一個更新,我可以計算它們,但我無法更新。我做了一個顯示給我的500頁的帖子,並把它放在標題的循環中。並在此頁面顯示結果不會改變 –