1

让我首先开始说我的 SQL 是正确的,并多次检查它

我的文件中有 2 个方法多次调用 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 个变量外,它不会记录任何错误。

4

2 回答 2

1

变量名在 php 中区分大小写。您正在分配值$ProductName$ProductID但您正在使用$Productid(小写 i)和$Productname(小写 n)。

于 2013-03-10T05:41:45.233 回答
0
  1. 不应再使用 mysql_ 库 - 它们已被弃用。
  2. 您的牙套到处都是(如果我了解您想要达到的目标,请参见下文)。
  3. PHP 变量区分大小写。

我认为您需要的代码是(只需要一个 select 语句):

$connection = new mysqli('localhost', 'my_user', 'my_password', 'my_db'); 
$stmt = $connection -> mysqli_prepare('SELECT m.Filter AS SubID, w.Title AS ProductName, w.ID AS ProductID FROM MegaFilter AS m, INNER JOIN SubCategories AS sc ON (sc.ID = m.Filter) INNER JOIN Web_Pages AS w ON (w.SubCat = sc.ID) WHERE Parent = ?');
$stmt->bind_param('s', $ThisPage);
$stmt->bind_result($SubID, $ProductName, $ProductID);
$stmt->execute();
while ($stmt->fetch())
{
    echo '<li class="item" data-id="id-'.$ProductID.'" data-type="'.$SubID.'">'.$ProductName.'</li>'
}
于 2013-03-10T06:00:53.093 回答