0

ちょっと小さなプロジェクトに取り組んでいますが、コードの特定の部分に問題があるようです。

最初の部分は美しく機能し、製品カテゴリ内の製品を表示します。 http://mkiddr.com/phptests/shopping/category.php?id=2

ただし、問題は、別のクエリから独自の配列に派生したカテゴリの説明を表示しているようです。利用した

echo(mysqli_num_rows($result2));

これは、クエリから正しい量の行をカウントしているようで、SQL が完全に機能していることを示しています。

私は完全なニーズであり、必要に応じてこのコードにパッチを適用して編集しました(大学から提供されました)。PS セキュリティに脆弱性があることは承知しています。

<?php
session_start();
include "conn.php";
include "header.php";

if (isset($_GET['id'])){
$CategoryID = $_GET['id'];
$q="SELECT ProductID, ProductName FROM Products WHERE CategoryID=$CategoryID";
$d="SELECT `Desc` FROM ProductCategories WHERE CategoryID=$CategoryID";

$result = mysqli_query($_SESSION['conn'],$q);
$result2 = mysqli_query($_SESSION['conn'],$d) or die(mysql_error());

echo "<div>";
while ($row = mysqli_fetch_row($result)){
    echo "<p><a href='product.php?id=".$row[0]."'>".$row[1]."</a></p>";
}
echo "</div>";
mysqli_free_result($result);

//Description
echo(mysqli_num_rows($result2)); //Test SQL

echo "<div>";
while ($myResult = mysqli_fetch_assoc($result2)){
    echo "<p>".$myResult[0]."</p>";
}
echo "</div>";
}
include "footer.php";
?>
4

1 に答える 1

4

あなたは間違ってフェッチしています:

while ($myResult = mysqli_fetch_assoc($result2)){
                                ^^^^^--- produces a non-numerically keyed array

あなたはおそらくしたいです

echo $myResult['name_of_field']

また

mysqli_fetch_row($result2)
             ^^^--returns a numerically keyed array.

代わりは。

于 2013-03-07T18:47:45.403 に答える