【问题标题】:Using SQL Query to echo table使用 SQL 查询回显表
【发布时间】: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>

link to page in question

我选择绿色类别进行测试,因为它有 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 &gt;= 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


【解决方案1】:

您必须使用category LIKE '%red%' 匹配“红色中型圣诞节”和“alsored 类别”等类别。 category LIKE 'red' 只匹配“红色”类别。

请参阅http://www.techonthenet.com/sql/like.php 了解有关LIKE 的更多信息。

【讨论】:

  • 谢谢,是的,出于某种原因,我在想,因为我用空格分隔了单词,它们在其中分隔了文本字符串...:(无论如何,谢谢!
【解决方案2】:

不要使用 exit();它停止脚本。所以它从不“回声”,甚至“没有该类别的产品”。

如果包含第一个代码,则使用 return;而不是退出()。但是我看不到你在哪里插入了哪些代码。

【讨论】:

  • ive 将 exit() 替换为 return;也完全删除了它,没有任何变化。它不会显示,我还在表格标签之外放置了一个额外的 以查看它是否会显示但它仍然不会。
猜你喜欢
  • 2018-08-20
  • 2017-05-21
  • 2013-10-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-25
  • 2022-01-09
  • 2019-09-18
  • 1970-01-01
相关资源
最近更新 更多