У меня есть две таблицы;один список названий местоположений, другой список компаний, в поле которого хранятся потенциально несколько местоположений, в которых работает компания:
id LocationName
1 Aberdeen
2 Dundee
3 Edinburgh
4 Glasgow
idCompany CompanyName Locations
1 CompanyA 1, 2, 3, 4
2 CompanyB 2, 4
3 CompanyC 1
Для страницы сведений о каждой компании я хочу перечислить местоположения, в которыхони работают, отображая имя каждого.Например.для компании B:
Dundee
Glasgow
и т. д.
Исходя из фона VB, я бы просто просматривал каждый набор данных и сравнивал каждый, чтобы найти совпадения, но это в PHP и яне могу заставить его работать:
// Query for specific firm
$sqlCompany= "SELECT * FROM company_details WHERE CompanyID='".$CompanyID."';";
$rstCompany= mysqli_query($conn, $sqlCompany);
$row = mysqli_fetch_assoc($rstCompany);
// Query list of Locations
$sqlLocationNames= "SELECT * FROM Locations ORDER BY LocationName ASC;";
$rstLocationNames= mysqli_query($conn, $sqlLocationNames);
// Explode the field of locations into an array:
$LocationArray = $row["Locations"];
$LocationArray = explode (",", $LocationArray);
for ($i = 0; $i < count($LocationArray); $i++) {
while ($rowLocationNames = mysqli_fetch_assoc($rstLocationNames)) {
if ($LocationArray[$i]==$rowLocationNames["idLocation"]) {
echo $rowLocationNames["LocationName"]."<br />";
}
}
}
Запустив это для компании А, я ожидаю получить список из четырех местоположений сверху, но я получу только первое местоположение (Абердин).Я перепробовал каждую комбинацию, но безрезультатно.Мне нужно сохранить структурированные данные таким образом, так как я намереваюсь иметь множитель выбора для вставки, а также редактирования данных, когда я смогу заставить это работать.Есть идеи, где я иду не так?