2017-06-25 4 views
0

私はこの機能は、上位30ユーザーを表示しています。各ユーザーのviewS列を表示する必要があります。私はechoで印刷しようとしていますが、何も出ていません。どのように表示されるのSUM()PHPで

function Wo_FeaturedUsers($limit = '', $type = '') 
{ 
    global $wo, $sqlConnect; 
    if ($wo['loggedin'] == false) { 
     return false; 
    } 
    $data = array(); 
    $logged_user_id = $wo['user']['user_id']; 
    $query_one = " SELECT `user_id` FROM `Wo_Posts` WHERE `user_id` =`user_id`"; 
    $sql = mysqli_query($sqlConnect, $query_one); 
    $mysql_count = mysqli_num_rows($sql); 
    if ($mysql_count > 27) { 
     $query_one = " SELECT `user_id`, SUM(views) 
FROM `Wo_Posts` 
WHERE `time` >= DATE_SUB(CURRENT_DATE, INTERVAL 90 
DAY) AND page_id = 0 GROUP BY `user_id` 
ORDER BY SUM(`views`) DESC LIMIT 30 
"; 
     $sql = mysqli_query($sqlConnect, $query_one); 
     while ($fetched_data = mysqli_fetch_assoc($sql)) { 
      $data[] = Wo_UserData($fetched_data['user_id']); 
     } 
    } else { 
     while($row = mysql_fetch_assoc($sql)) { 
      $sum = $row["SUM(views)"]; 
     } 
    } 
    return $data; 
} 

答えて

0

使用ASキーワード

SELECT `user_id`, SUM(views) AS my_sum FROM `Wo_Posts` 
.... 
ORDER BY my_sum DESC 

SQLクエリを実行して、あなたは、アレイ

$sum = $row["my_sum"]; 

しかし、もしのmy_sumキーで簡単にPHPを介してアクセスすることができますあなたはあなたのコードをチェックしていますmy_sum DBから取得する場合は最初のキューrsには27以上のエントリがあります。 27を超えていない場合は、最初のクエリにないSUM値をチェックします。

while($row = mysql_fetch_assoc($sql)) { 
    $sum = $row["SUM(views)"]; 
} 

このコードは間違った位置にあります。 whileループはifの中になければなりません。そうでないと、2番目のクエリでDBからSUMを読み込んでいるため、SUMはDBから取得されません。

+0

私はAS を使用しようとしていましたが、結果はありません –

+0

@РоманРоманович私は答えを更新しました。実際に27番号は何ですか? – tilz0R

+0

私はPHPを知らないので助けてください。 –

関連する問題