【发布时间】:2012-07-18 10:42:23
【问题描述】:
<?php
$product_list="";
if(isset($_GET['cat'])){
$sql = mysql_query("SELECT*FROM products WHERE category LIKE'$category'");
while($row=mysql_fetch_array($sql)){
$tablerow='3';
$product_list.='<tr>';
while($tablerow >= 0){
$id=$row["id"];
$name=$row["name"];
$price=$row["price"];
$date_added = strftime("%b %d, 20%y",strtotime($row["date_added"]));
$discriptiontags = $row['category'];
$discription = $row['subcategory'];
$size = $row['details'];
$qty= $row['inv'];
$product_list.='<td><img src="inventory_images/'.$id.'.jpg" width="250" height="167"/><br/>$name</td>';
$tablerow=$tablerow-1;
}
$product_list.='</tr>';
}
}else{
$product_list = "no products in this category";
exit();
}
?>
所以这背后的想法是;使用 $_GET 为我的数据库获取类别标签,并使用 LIKE 查找行信息并在单个表单元格中显示每行信息,该表来自一个跨 3 列并动态添加其他行的表。
这是应该显示的地方的html
<table width="760px" border="1" cellpadding="4">
<?php echo $product_list ?>
</table>
我选择绿色类别进行测试,因为它有 3 个项目。
如果没有设置 url 变量,由于某种原因,页面根本不会显示...????
页面上的其余部分:
<?php
///conect to mysql
///grab page variable
include "storescript/connect_to_mysql.php";
$category="";
$tab="-1";
if(isset($_GET['cat'])){
$category=$_GET['cat'];
}
if(isset($_GET['tab'])){
$tab=$_GET['tab'];
}
?>
【问题讨论】:
-
我必须管理我没有阅读整篇文章,但这个
while($tablerow >= 0)似乎没用,因为 mysql_fetch_array 将逐行获取结果..顺便说一句,根据你可以切换到 mysql_fetch_assoc 的用法.. 更不用说你可以在手册页上看到建议开发人员使用 mysqli 或 pdo 的大通知 -
while($tablerow >= 0) 用于让内部 while 循环在重置 $tablerow 之前只运行三次,正如我所说的我是菜鸟,这是我第一次尝试编写 php没有教程,所以我不知道 mysqli 或 pdo 是什么。
-
你为什么使用LIKE?你使用它的方式和你使用
category = '$category'时的效果是一样的。 -
category 包含诸如“red medium Christmas”之类的文本,所以我的印象是 LIKE 会扫描整个类别文本以查找 $category 的一个实例
标签: php sql debugging html-table echo