会社情報(Companies)で構成されるテーブルと製品情報(Products)で構成されるテーブルを持つSqliteデータベースがあります。CompaniesテーブルIDはCompany_Nameです。これは、Company_NameによってProductsテーブルと結合されます。たとえば、Company "A"は、Company_Name = ProductID(ProductIDは会社名で構成されます)の内部結合Companiesを介して、多くの製品を関連付けることができます。
php whileループを使用してこの情報を表示しようとしています。これにより、それぞれの製品を使用している企業のリストが表示されます。これを行う方法がわかりません。1つの会社と1つの製品などの単一のレコードをループすることはできますが、1つの会社と複数の製品をリストすることはできません。以下は私が達成しようとしていることです:
会社「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>";
}
}
基本的に、私のコードはカリフォルニアの1つの会社を示し、カリフォルニアのすべての会社に関連するすべての製品をリストします。
会社「A」-場所CA製品1、製品2、製品3、製品3、製品4、製品6、製品1、製品8
2番目のphp「whileloop」を取り出してみましたが、次のようになります。
会社「A」-場所CA製品1
会社「A」-場所CA製品2
会社「A」-場所CA製品3..。
私はSqliteを使用していますが、誰かがMySqlまたは他のsql Dbに例を持っている場合、それも本当に役立ちます。私の問題は、クエリとphpの「whileループ」にあると思います。