2017-05-05 8 views
0

私はワードプレスデータベースを持っています。ポストメタテーブルでは、各投稿ごとに3つの異なる値があります。我々はテーマを3回更新し、その都度投稿数が異なる。私はこれをしたい。異なる行の一つのテーブルに値がある:SQL異なる行から値を収集し、新しいものを更新します。

ポストID 10値は、1:良好 - ビューカウント3455
ポストID 10値2:post_stats 522
ポストID 10値3:post_views_count 52

私は3つを合計し、結果post_views_countを更新したいと思います。

どのように私はそれを行うことができ、どのようなSQLは私がそれを使用する必要がありますか?

私はそれがPHPのコードでなければならないSQLフォル1000ポストでそれを行うオプションはないと思う。しかし、私はそれを使用すべきSQLをイメージすることはできません。

<?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; 

?> 

結果:

BETTER:
POSTのSTATS:37
POSTのVIEW


私はいくつかの変更と研究が、私は解決策を見つけ行った後

編集しますCOUNT:909
合計:946

、それが更新されなければならないと


BETTERする必要があります:946の
POSTのSTATS:37
POST VIEW COUNT:909
TOTAL: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ポストを示すページを作ってこれをタイトルのループに入れます。このページで私は結果が変わらないことを示す –

関連する問題