2014-04-26 38 views
0

我面臨着我的PHP代碼的問題。我已經嘗試了堆棧溢出的建議,但該代碼無法正常工作。這裏我使用的是maxmin的功能。還嘗試功能mysql_fetch_rows()mysql_fetch_assoc()。它向我顯示錯誤undefined index:facilities_total in line...我也在下面的代碼中指出我的錯誤。請建議如何解決此問題。未定義的索引最大功能不工作在PHP

這是我的PHP與MySQL查詢

$sqlMax= "SELECT projects_detail.Project_name,max(facility_rating.facilities_total) 
    AS MAX_FACILITIES_TOTAL 
    FROM facility_rating LEFT OUTER JOIN projects_detail 
    on facility_rating.project_id = projects_detail.project_id 
    group by facility_rating.facilities_total DESC LIMIT 1"; 
$resultMax=mysql_query($sqlMax); 
echo "<table border cellpadding=3>"; 
while($rowsMax=mysql_fetch_array($resultMax)){ 
    echo "<tr>"; 
    echo "<td>".$rowsMax['Project_name'] . "</td> "; 
    echo "<td>".$rowsMax['facilities_total'] . "</td> "; //error undefined index:facilities_total 
    echo "</tr>"; 
} 
echo "</table>"; 
+1

如果有疑問,請使用var_dump($ rowsMax),以便您可以看到實際獲得的內容。這比在SO上詢問要快;) – MrZebra

+0

感謝大家,現在我的代碼運行正常。 – sunman

回答

1

試試這個:

echo "<td>".$rowsMax['MAX_FACILITIES_TOTAL'] . "</td> "; 

而不是

echo "<td>".$rowsMax['facilities_total'] . "</td> "; 

在SQL您正在使用別名facilities_total,所以行取自字段名稱MAX_FACILITIES_TOTAL而不是facilities_total

+0

感謝您的回覆。我已嘗試使用此代碼。仍顯示錯誤未定義索引:MAX_FACILITIES_TOTAL。這就是爲什麼我在這裏發佈這個問題。告訴我我錯在哪裏? – sunman

+1

其實它是我的瀏覽器問題。當我在另一個瀏覽器中運行時,它運行良好。謝謝你 – sunman

0

你的SQL命名輸出列在這裏:

AS MAX_FACILITIES_TOTAL 

所以,你想要的PHP變量會

$rowsMax['MAX_FACILITIES_TOTAL'] 
+0

感謝您的回覆。我已經試過這段代碼,仍然顯示錯誤未定義索引:MAX_FACILITIES_TOTAL。這就是爲什麼我在這裏發佈這個問題。告訴我我錯在哪裏? – sunman

+0

然後,請更新您的問題,以包含最佳版本的代碼,而不是包含此明顯錯誤的代碼。 – IMSoP

2

可以看出你是給別名在您的查詢,您使用的列名您的php代碼:

$sqlMax= "SELECT projects_detail.Project_name,max(facility_rating.facilities_total) 
    AS MAX_FACILITIES_TOTAL 
    FROM facility_rating LEFT OUTER JOIN projects_detail 
    on facility_rating.project_id = projects_detail.project_id 
    group by facility_rating.facilities_total DESC LIMIT 1"; 
$resultMax=mysql_query($sqlMax); 
echo "<table border cellpadding=3>"; 
while($rowsMax=mysql_fetch_array($resultMax)){ 
    echo "<tr>"; 
    echo "<td>".$rowsMax['Project_name'] . "</td> "; 
    // Fix: Changed 'facilities_total' to 'MAX_FACILITIES_TOTAL' below. 
    echo "<td>".$rowsMax['MAX_FACILITIES_TOTAL'] . "</td> "; //error undefined index:facilities_total 
    echo "</tr>"; 
} 
echo "</table>"; 
+0

感謝您的回覆。我已嘗試使用此代碼。仍然顯示未定義的索引:MAX_FACILITIES_TOTAL。這就是爲什麼我在這裏發佈這個問題。告訴我我錯在哪裏? – sunman

+0

嘗試在while循環中使用print_r($ rowsMax)並查看您獲得的數組 – lampdev