2016-07-07 50 views
-2

查詢我有「分數」的下面調用從MySQL表用PHP

No ! id ! A  ! B ! average ! 
 
------------------------------------------ 
 
1 ! 01 ! 80  ! 60 ! 70 ! 
 
2 ! 02 !   ! 60 ! 30 ! 
 
3 ! 03 ! 0  ! 60 ! 30 ! 
 
4 ! 04 ! 80  !  ! 40 !
我想打電話給列此表中的「平均」使用下面

$mySql = "SELECT score.id, (SUM(COALESCE(A,0)) + SUM(COALESCE(B,0)))/(COUNT(A) + COUNT(B)) FROM score GROUP by id"; 
 
\t $myQry = mysql_query($mySql, $koneksidb) or die ("Query salah : ".mysql_error()); 
 
\t $myData = mysql_fetch_array($myQry);
驗證碼

用php給我打電話我用:

<?php echo $myData; ?>

但它出來空這樣的:

! average ! 
 
----------- 
 
!   ! 
 
!   ! 
 
!   ! 
 
!   !

我做了什麼錯?

我把它改爲

$mySql="SELECT id, AVG(COALESCE(A, 0) + COALESCE(B, 0)) AS average FROM score GROUP by id"; 
 
$myQry = mysql_query($mySql, $koneksidb) or die ("Query salah : ".mysql_error()); 
 
while ($row = mysql_fetch_assoc($myQry)) { echo $row['average']; }

仍然無法工作,我已經把PHP while循環中,它出來的相同數量現在

+0

mysql_棄用嘗試使用庫MySQLi或PDO – JYoThI

+0

@gtviga你應該添加註釋到您的查詢並編輯你的問題,現在不清楚。 – shivgre

+0

提取會將其轉換爲數組樣式格式(儘管不是迭代的,所以您不能使用for循環)。你想使用while循環而不是'echo $ myData':'while($ row = mysql_fetch_assoc($ myQry)){ echo $ row ['average']; }' – Matt

回答

0

還有就是應該使用AVG()分組功能:

SELECT led7ape.led7ape_id, 
    AVG(COALESCE(led7apet1h, 0) + COALESCE(led7apet2h, 0)) AS `average` 
    FROM led7ape GROUP by led7ape_id 

如果沒有要組確實(每一行有這裏唯一的ID),只是總結兩個字段如下:

SELECT led7ape.led7ape_id, 
    COALESCE(led7apet1h, 0) + COALESCE(led7apet2h, 0)) AS `average` 
    FROM led7ape 
+0

我寫了 $ mySql =「SELECT led7ape.led7ape_id,AVG(COALESCE(led7apet1h,0)+ COALESCE(led7apet2h,0))平均而言 FROM led7ape GROUP by led7ape_id」; $ myQry = mysql_query($ mySql,$ koneksidb)或死(「查詢salah:」。mysql_error()); while($ row = mysql_fetch_assoc($ myQry)){echo $ row ['average']; } 當我寫 <?php echo $ row ['average']; ?> 它空出來了 – gtviga