我对数据库的结构没有发言权或决定权,所以我必须使用我所拥有的。否则,正如大多数评论所说,通过规范化和清理表格,这个问题将大大简化。
我有一个数据库表,其中包含汽车型号和一些“类别”(国产车、进口车、皮卡车、面包车等)。值得注意的是,这些类别以整数代码表示。
该表每行有 10 个类别列(Use1、Use2、Use3 等),因此每辆车最多可以有 10 个。
然后我有另一个表,其中包含对应于每个类别代码的描述(例如,国产车 = 1,进口车 = 2,等等)。
我有一个包含两个 HTML 选择元素的表单,一个用于汽车,另一个用于类别。
<div class="form-group row">
<label class="col-sm-2 form-control-label">Cars</label>
<div class="col-sm-6">
<select class="form-control" id="car_model" name="car_model" onchange="fetch_categories(this.value);">
<option>Car 1</option>
<option>Car 2</option>
<option>Car 3</option>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 form-control-label">Category</label>
<div class="col-sm-4">
<select class="form-control" name="category">
<option>Select a car first...</option>
</select>
</div>
</div>
我需要根据汽车选择的值填充类别选择。这是通过使用 Ajax 完成的(按预期工作的部分可能与主题无关)。
Ajax 函数将汽车数据发送到一个 php 脚本,该脚本通过查询成功获取所有相应的类别。
我正在努力使用该查询的结果来获取通过另一个查询来自它的所有类别的描述。
我试过做一个 foreach 来迭代查询 #1 的所有结果,然后执行查询 #2 然后制定<option>标签,但我没有做对。
<?php
$car_model = $_POST['get_car'];
$query = "SELECT CodUso1,
CodUso2,
CodUso3,
CodUso4,
CodUso5,
CodUso6,
CodUso7,
CodUso8,
CodUso9,
CodUso10 AS categories FROM cars WHERE car_model = '$car_model'";
$stmt = $pdo->prepare($query);
$stmt->execute();
$result = $stmt->fetchAll();
foreach ($result['categories'] as $u):
if ($result['CodUso1'] != 0 ||
$result['CodUso2'] != 0 ||
$result['CodUso3'] != 0 ||
$result['CodUso4'] != 0 ||
$result['CodUso5'] != 0 ||
$result['CodUso6'] != 0 ||
$result['CodUso7'] != 0 ||
$result['CodUso8'] != 0 ||
$result['CodUso9'] != 0 ||
结果<option>元素必须包含作为值的汽车代码和作为“描述”的描述。
如果解释过于复杂,我深表歉意,如果您需要任何进一步的信息或澄清,请告诉我。
慕尼黑5688855
慕慕森