Greest()函数返回未定义的属性

时间:2010-12-03 作者:wpStudent

我正在使用mysqlGREATEST() 函数比较两个表字段,并在循环中显示具有最大整数值的其中一个字段。这两个字段由职位的投票分数组成:上升或下降。

function vote_results($post_id) { 
  global $wpdb; 
  $table = $wpdb->prefix . "post_votes";    
  $results = $wpdb->get_row( "SELECT GREATEST (up, down) FROM $table WHERE voted_post_id = $post_id" );
  echo $results->up; //echo if highest value
  echo $results->down; //echo if highest value

}
然后在我的循环中调用函数,但得到Notice: Undefined property: stdClass::$up 对于

echo $results->up;
同样的通知down. 我不确定我在这里做错了什么。

2 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

我想你想用get_var(), 不get_row() - looking at the documentation, MySQL的GREATEST 只返回一个值。

$results 将成为最大的价值updown).

如果你想要最好的up and 最伟大的down, 使用

$wpdb->get_row("SELECT GREATEST(up) AS \'up\', GREATEST(down) AS \'down\' ...")

SO网友:Denis de Bernardy

同意死亡医学。。。如果你使用best(),请帮自己一个忙,知道你在做什么。当fed int时,它返回一个bigint,并且您的查询没有给结果列任何名称。因此,当您试图访问一个不可用的列时,$wpdb显然会抱怨。:-)

我相信您正在寻求:

SELECT up - down as total, up, down FROM $table WHERE voted_post_id = $post_id

结束

相关推荐

How do you debug plugins?

我对插件创作还很陌生,调试也很困难。我用了很多echo,它又脏又丑。我确信有更好的方法可以做到这一点,也许是一个带有调试器的IDE,我可以在其中运行整个站点,包括插件?