我有一个 Sqlite 数据库,其中有一个由公司信息(Companies)组成的表和一个由产品信息(Products)组成的表。Companies 表 ID 是 Company_Name。它通过 Company_Name 与 Products 表连接。例如,公司“A”可以通过 Company_Name = ProductID(ProductID 由公司名称组成)上的内部连接 Companies 关联许多产品。
我正在尝试使用 php while 循环显示此信息,以便列出公司及其各自产品的列表。我无法弄清楚如何做到这一点。我可以循环单个记录,例如一个公司有一种产品,但我不能列出一个公司有多种产品。以下是我想要实现的目标:
公司“A” - 位置 CA 产品 1、产品 2、产品 3
公司“C” - 位置 CA 产品 3、产品 4、产品 6
公司“F” - 位置 CA 产品 1、产品 8
在此示例中,查询将提取加利福尼亚 (CA) 的所有公司。
我的代码如下,但它不起作用:
//srchtext is the value in a HTML text box//
$txt = $_GET["srchtext"];
$dbstate = @$db->query("SELECT Company.Company_Name, Company.Company_City, Company.Company_State, Company.Company_Website, Company.Company_Service, Categories.Category_Name, Products.Product_Name FROM Company INNER JOIN Products On Company_Name = ProductID WHERE Company_State = '$txt'");
while ($hmstate = $dbstate->fetchArray()){
echo "<ul>";
echo "<font id='srchclr'; color='#666666';>";
echo '<strong>'.$hmstate['Company_Name'].'</strong>'.'<br>'.$hmstate['Company_City'].','.$hmstate['Company_State'].'<br>'.
'<a href='.$hmstate['Company_Website'].'>'.$hmstate['Company_Website'].'</a>'.'<br>'.'<ul>'.
'<br>'.'<strong>Products or Services Provided by this Company:</strong>'.'<br>'.'<br>'.'<ul>'.$hmstate['Company_Service'].'</ul>';
echo "<br>";
echo "<strong>Company Product Category:</strong>";
echo "<br>";
echo "<br>";
//Product loop//
While ($hmstate = $dbstate->fetchArray()) {
echo "<ul>";
echo $hmstate['Product_Name'];
echo "</ul>";
}
}
基本上,我的代码给了我加利福尼亚的一家公司,并列出了与加利福尼亚所有公司相关的所有产品:
公司“A” - 位置 CA 产品 1、产品 2、产品 3、产品 3、产品 4、产品 6、产品 1、产品 8
我尝试取出第二个 php“while 循环”,但是我会得到以下信息:
公司“A” - 位置 CA 产品 1
公司“A” - 位置 CA 产品 2
公司“A” - 位置 CA 产品 3...
虽然我使用的是 Sqlite,但如果有人在 MySql 或任何其他 sql Db 中有一个示例,那也会很有帮助。我认为我的问题在于查询和 php“while 循环”。