Mysql GREATEST() 関数を使用して、2つのテーブルフィールドを比較し、最大の整数値を持つフィールドをループで表示します。 2つのフィールドは投稿に対する投票スコアで構成されています:UPまたはDOWN。
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
についても同じことが言えます。ここで何が悪いのかわからない。
TheDeadMedicに同意する... GREATEST()を使用する場合は、自分が何をしているのか知っていることで自分自身を支持してください。入力されたint値はbigintを返します。クエリでは結果の列に名前は付けられません。あなたが利用できないカラムにアクセスしようとすると、$ wpdbは明らかに文句を言うでしょう。 :-)
私はあなたがこれを探していると思います:
SELECT up - down as total, up, down FROM $table WHERE voted_post_id = $post_id