无法使用while循环显示mysql_fetch_array的所有行。如何使用while循环显示mysql_fetch_array的所有行
嗨。我的问题是我只能显示输入数据库表的最后一行。 我用php解析表单数据以插入到数据库表中。 我知道表格数据被插入到表格中。 我正在使用while循环尝试从表格的所有行中的两列提取数据。 我使用php来显示每列中的两列id
& product_name
的数据。 这是我的理解,一个mysql_fetch_array将只返回1行,除非它与一个while循环一起使用,然后应该返回所有行。所以我很困惑,为什么我只能摆出最后一行。
当我浏览phpMyAdmin中的表格时,有三行各有一个ID号码。 它们按顺序1,2,3顺序排列,因为id
列是自动递增的。 id
列是主键。 product_name
列是唯一键。
我不认为我的查询结构有问题。 可能是一个定义$ product_list变量的问题?我不知道。
我已关闭浏览器并清除所有历史记录,cookies等。 我已停止&重新启动Apache服务器& mysql。
当我echo var_dump($ sql);我得到:类型(mysql结果)的资源(6)。 当我回声var_dump($ product_list);我得到:string(99)“3 - Blue Jeans编辑•删除” 当我print_r($ sqL);我得到:资源ID#6 当我echo $ product_list;我得到:3 - 蓝色牛仔裤编辑•删除
我花了很多时间通过谷歌搜索寻找答案,但没有一个似乎适合这个特定的问题。
我确实看到一个类似的问题,建议使用串联方法,但有零(0)票。所以我不确定这是否是对我的问题可行的补救措施。
这里是我使用的代码:
<?php
//this block grabs the whole list for viewing
$product_list = "";
$sql= mysql_query ("SELECT * FROM `products`");
$product_count = mysql_num_rows ($sql);
if ($product_count > 0) {
while($row = mysql_fetch_array ($sql)) {
$id = $row['id'];
$product_name = $row ['product_name'];
$product_list = "$id - $product_name <a
href='#'>edit</a> • <a href='#'>delete</a>
<br/>";
}
} else {
$product_list = "You have no products listed in your store yet";
}
?>
<?php echo $product_list; ?>
不要再使用'mysql_ *'函数了。他们折旧。 –