mysql_fetch_array无法获取类别id信息


mysql_fetch_array unable to get category id information

当我点击类别列表时,我只得到类别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>";
}
?>

问题在这里

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;
}

CCD_ 2在任何地方都没有定义。你如何定义它?也许应该是

$cat_id = $_GET['cat_id'];
if($cat_id==null){
    $cat_id = 1;
}