Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 对自定义post字段中的specyfic meta_值求和_Wordpress - Fatal编程技术网

Wordpress 对自定义post字段中的specyfic meta_值求和

Wordpress 对自定义post字段中的specyfic meta_值求和,wordpress,Wordpress,我在尝试一笔特殊的元价值基金。在我的meta_值单元格中,有自定义的post字段。一个是资金,另一个是自己的贡献 我尝试了codex页面中的示例,但它不起作用,因为当我回显$sumFunding变量时,我得到一个0 $meta_key = 'investments_details'; $sumFunding = $wpdb->get_var( $wpdb->prepare( " SELECT sum(meta_value) FROM $wpdb->p

我在尝试一笔特殊的元价值基金。在我的meta_值单元格中,有自定义的post字段。一个是资金,另一个是自己的贡献

我尝试了codex页面中的示例,但它不起作用,因为当我回显
$sumFunding
变量时,我得到一个0

  $meta_key = 'investments_details';
  $sumFunding = $wpdb->get_var( $wpdb->prepare(
  "
    SELECT sum(meta_value)
    FROM $wpdb->postmeta
    WHERE meta_key = %s", $meta_key) );

如何让它工作

您给出的代码不包含您编写的元字段

请尝试以下代码:

$meta_key_1 = 'funding';
$meta_key_2='ownContribution';
$sumFunding = $wpdb->get_var( $wpdb->prepare(
"SELECT sum(meta_value)
 FROM $wpdb->postmeta
 WHERE meta_key = %s or meta_key = %s", $meta_key_1,$meta_key_2) );
如果你想通过指定的邮件发送

$meta_key_1 = 'funding';
$meta_key_2='ownContribution';
$post_id=SOME_ID_HERE;
$sumFunding = $wpdb->get_var( $wpdb->prepare(
"SELECT sum(meta_value)
 FROM $wpdb->postmeta
 WHERE post_id=%d and (meta_key = %s or meta_key = %s)",$post_id, $meta_key_1,$meta_key_2) );
更新: 由于数据值位于序列化数据中,因此需要不同的方法:

 $post_id=SOME_ID_HERE;
 $investments_details=get_post_meta($post_id,'investments_details',true);
 $investments_details_sum=$investments_details['funding']+$investments_details['ownContribution'];
更新2: 循环所有帖子

$investments_details_sum=array();
$results = $wpdb->get_results("SELECT meta_key, meta_value, post_id FROM $wpdb->postmeta WHERE meta_key like 'investments_details'");
foreach($results as $result){
 $investments_details=unserialize($result->meta_value);
$investments_details_sum[$result->post_id] = $investments_details['funding'] + $investments_details['ownContribution'];
}
var_dump($investments_details_sum);

差不多了。如何将价值加起来?因为现在它显示了3个(我理解这是因为我有3个关于创建自定义字段的帖子),并且我应该得到654.332,13,这是添加创建值的结果?对不起,我不明白你的意思。什么是“654.332,13”?是电话号码吗?你是怎么得到的?在身份证188号后,我有109375,00的资金价值。在post_id 190中,我的资金价值为510779,50。在post_id 192中,我的资金价值为3417763,16。这是一个数据库截图,不,它们的值是php序列化格式的,所以不能在一个mysql查询中求和。我给出的代码适用于数值为数字的情况。我现在正在为您的案例添加更新。请在2分钟内检查我的答案好的,你的更新对一个帖子有效。我需要用
investments\u details
meta\u键从数据库中选择所有帖子,并将所有资金相加。我可以使用它
$result=$wpdb->get_results(“从{$wpdb->prefix}postmeta中选择meta_键,meta_值,其中meta_键类似于‘investments_details’”)但我不知道如何获取$investments\u的详细信息[“融资”]并将其相加。