2013-03-07 2 views
0

안녕하세요, 작은 프로젝트에서 작업하고 있지만 코드의 특정 부분에 문제가있는 것 같습니다.어레이 빈 에코 문제

첫 번째 부분은 아름답게 작동하며 제품 범주 내에 제품을 표시합니다. http://mkiddr.com/phptests/shopping/category.php?id=2

그러나 문제는 고유 한 배열로 분리 된 쿼리에서 파생 된 범주 설명이있는 것으로 보입니다. 내가 사용한 적이있다

echo(mysqli_num_rows($result2)); 

이것은 SQL이 완벽하게 작동하고 있음을 나타내는 쿼리 행의 정확한 양을 계산하는 것으로 보인다.

나는 완전한 needbe이고 나는이 요구 사항 (대학에서 제공)에이 코드를 패치하고 편집했다. P.S 보안상의 취약점이 있음을 알고 있습니다.

<?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

당신은 잘못 가져 오는 것 :

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. 

를 대신합니다.

+0

환상적! 당신은 그것을 해결했습니다, 많은 감사드립니다. –