讓我首先開始說我的SQL是正確的,並且不止一次地檢查它。SQL將不會返回值
我有兩種方法在我的文件中調用SQL不止一次,但是當涉及到第二部分時,它不會返回任何值來填充字段。
這是給我的問題的一部分:
$query = mysql_query("SELECT * FROM MegaFilter WHERE Parent = '".$ThisPage."' ");
while($query2 = mysql_fetch_assoc($query)) {
$SubID = $query2['Filter'];
$query3 = mysql_query("SELECT * FROM SubCategories WHERE ID = '".$SubID."' ");
while($query4 = mysql_fetch_assoc($query3)) {
$SubCatID = $query4['ID'];
$query5 = mysql_query("SELECT * FROM Web_Pages WHERE SubCat = '".$SubCatID."' ");
}
while($query6 = mysql_fetch_assoc($query5)) {
$ProductName = $query6['Title'];
$ProductID = $query6['ID'];
}
echo '<li class="item" data-id="id-'.$Productid.'" data-type="'.$SubID.'">'.$Productname.'</li>';
}
它不記錄任何錯誤,只是最後的2個變量沒有定義。
**你離開自己敞開SQL注入**請了解如何使用參數化查詢,最好使用PDO模塊來保護您的Web應用程序。 http://bobby-tables.com/php有例子讓你開始。 – 2013-03-10 05:50:48
你應該看看使用SQL連接。您正在對數據庫進行太多的調用。如果你在MegaFilter中有5行,在SubCategories中有7行,每個都有10行,Web_pages中有10行,你將會對你的數據庫進行350次SELECT調用。使用SQL JOIN可以讓您在一次調用數據庫的過程中獲得所有數據。謝謝! – 2013-03-10 06:54:54