1

まず、私のSQLが正しいと言い始め、それを複数回チェックします

ファイルに2つのメソッドがあり、SQLを複数回呼び出していますが、2番目の部分に関しては、フィールドに入力する値が返されません。

これが私に問題を与えている部分です:

$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変数では大文字と小文字が区別されます。

必要なコードは次のとおりです(1つの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 に答える