【问题标题】:Run While Loop and check another table for variable before outputting data在输出数据之前运行 While 循环并检查另一个表的变量
【发布时间】:2013-04-03 22:47:46
【问题描述】:

我有一个 while 语句。这会遍历我的“客户”表并输出数据。

while($row = mysql_fetch_array($result))
        {
echo ".$row['category_id'].<br>
.$row['name'].<br>
.$row['address'].<br>
.$row['status'].<br>"

}

这一切都很好。
我遇到的问题是“category_id”作为数字存储在“customer”表中,不同的类别与它们的唯一编号和相关的书面名称一起存储在单独的“category”表中。

例如客户表有, 类别 ID - 150 名称 - Stackoverflow 地址 - 主街 123 号 状态 - 活跃

例如类别表有 编号 - 150 名称 - 留言板

当我运行 while 循环以输出客户数据时,我需要查询类别表以获取并显示与 category_id 关联的“名称”。

我在一个while循环中想出了一个while循环,你们怎么看?感谢您的帮助。

【问题讨论】:

  • 您可能只需更新您的查询以加入category_id

标签: php while-loop


【解决方案1】:

您需要执行 MySQL 连接并一次获取所有信息:http://www.tizag.com/mysqlTutorial/mysqljoins.php

您的查询将如下所示:

SELECT
    c.name,
    c.address,
    c.status,
    ca.name as category_name
FROM
    customer c
JOIN
    category ca
ON
    ca.id = c.category_id

您的 PHP 将如下所示:

while($row = mysql_fetch_array($result)) {
    echo "$row[category_name]<br>
          $row[name]<br>
          $row[address]<br>
          $row['status']<br>";
}

【讨论】:

  • 这是我当前的查询语法。它生成“提供的参数不是有效的 MySQL 结果资源”错误。 $query = "SELECT c.last_edit, c.name, c.logo, c.city, c.state, c.zip, ca.name AS category_name FROM business c JOIN category ca ON ca.id=c.category_id WHERE c .city='$search_city' AND c.state='$search_state' ORDER BY c.last_edit DESC LIMIT $Limit_Outcome";
  • Holy Cow....明白了....我正在学习...感谢您的大力帮助....错误是在引用“ca.id”..上帝保佑你们......谢谢十亿......
猜你喜欢
  • 2014-09-04
  • 1970-01-01
  • 2016-03-08
  • 2019-09-03
  • 1970-01-01
  • 2018-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多