0

当我单击类别列表时,我只获得类别 1 信息。但是 mysql_fetch_array 无法获取 2,3,4,5 id 的信息。代码在这里。请帮忙:

类别列表:

        $cat=mysql_query("select * from category");
        while($row=mysql_fetch_array($cat)){
        echo "<li><a href='index.php?cat_id=$row[id]'>$row[name]</a></li>";
        }
        ?>
    </div>
    <br><br>

    <b>Cart</b>
    <div class="leftcon">
        <?php       
        mysql_select_db($dbname,$con);
        echo "<br>Coming Soon<br><br><br>";
        ?>  

索引页面

if($cat_id==null){
    $cat_id = 1;
}

$sql="select * from product where
    cat_id = $cat_id";
    echo $sql;
$rs=mysql_query($sql,$con);

while($row = mysql_fetch_array($rs)){

    echo "<div class='con_product'>";
    echo "<b>$row[product_name]</b><br>";
    echo "<img src=$row[product_image] height='100' width='128'><br>";
    echo "$row[description]<br>";
    echo "<div class='con_product_price'><b>BDT $row[unit_price]</b></div>";
    echo "</div>";
}
?>
4

1 回答 1

0

问题在这里

echo "<li><a href='index.php?cat_id=$row[id]'>$row[name]</a></li>";

字符串是这样插值的(相当于)

echo "<li><a href='index.php?cat_id=" . $row[id] . "'>" . $row[name] . "</a></li>";

id不是有效的字符串或标识符。

所以像这样重写你的行:

echo "<li><a href='index.php?cat_id={$row['id']}'>{$row['name']}</a></li>";

或者像这样

echo "<li><a href='index.php?cat_id=" . $row['id'] . "'>" . $row['name'] . "</a></li>";

此外,您需要相应地修复其他行。

echo "<b>{$row['product_name']}</b><br>";
echo "<img src='{$row['product_image']}' height='100' width='128'><br>";
echo "{$row['description']}<br>";
echo "<div class='con_product_price'><b>BDT {$row['unit_price']}</b></div>";

另一件事

在您的 index.php 中,

if($cat_id==null){
    $cat_id = 1;
}

$cat_id没有在任何地方定义。你如何定义它?也许应该是

$cat_id = $_GET['cat_id'];
if($cat_id==null){
    $cat_id = 1;
}
于 2013-07-09T17:44:11.317 回答