Пожалуйста, держись со мной, пока я пытаюсь объяснить свой вопрос. У меня есть база данных Sqlite, в которой есть таблица, содержащая информацию о компании (компании), и таблица, содержащая информацию о продукте (продукты). Идентификатор таблицы Companies - Company_Name. Он соединен с таблицей «Продукты» именем компании. Например, у компании «А» может быть много продуктов, связанных с ней, через внутреннее объединение компаний по Company_Name = ProductID (ProductID состоит из названий компаний).
Я пытаюсь отобразить эту информацию, используя цикл php while, чтобы был список компаний с их соответствующими продуктами. Я не могу понять, как это сделать. Я могу зациклить отдельные записи, например, одну компанию с одним продуктом, но я не могу перечислить одну компанию с несколькими продуктами. Вот что я пытаюсь достичь:
Компания "А" - местонахождение ЦА
продукт 1, продукт 2, продукт 3
Компания "С" - местонахождение ЦА
продукт 3, продукт 4, продукт 6
Компания "F" - местонахождение ЦА
продукт 1, продукт 8
В этом примере запрос будет обрабатывать все компании в Калифорнии (Калифорния).
Мой код выглядит следующим образом, но он не работает:
//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, продукт 2, продукт 3, продукт 3, продукт 4, продукт 6, продукт 1, продукт 8
Я попытался удалить второй php "while loop", но получу следующее:
Компания "А" - местонахождение ЦА
Продукт 1
Компания "А" - местонахождение ЦА
Продукт 2
Компания "А" - местонахождение ЦА
Продукт 3 ...
Хотя я использую Sqlite, если у кого-то есть пример в MySql или любом другом sql Db, это тоже очень поможет. Я думаю, что моя проблема связана с запросом и php "while loop".
Я очень ценю вашу помощь.
Спасибо,
DFM