让我首先开始说我的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