私はワードプレスデータベースを持っています。ポストメタテーブルでは、各投稿ごとに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
私はそれらを計算することはできますが、更新することはできません。私は私に500ポストを示すページを作ってこれをタイトルのループに入れます。このページで私は結果が変わらないことを示す –