У меня проблема с кодированием, которую я не могу решить сама, поэтому мне нужна ваша помощь.
У меня есть два запроса выборки данных из одной таблицы:
$rs_main_model
получает все уникальные модели, используя GROUP BY
$rs_variant
получает все модели с соответствующими параметрами, то есть все столбцы таблицы.
Что я делаю, так это запускаю цикл while, чтобы вывести список всех уникальных моделей — $rs_main_model
а затем внутри того же div
запустить второй цикл, чтобы получить список всех подходящих моделей из $rs_variant
:
<?php while (!$rs_main_model->EOF) { ?>
<div>
<div>
<h2<?php echo $rs_main_model->fields['model']; ?></h2>
</div>
<div>
<?php while (!$rs_variant->EOF) { ?>
<?php echo $rs_variant->fields['variant']; ?>
<?php $rs_variant->MoveNext(); } ?>
</div>
</div>
<?php $rs_main_model->MoveNext(); } ?>
Ниже приведен пример фактического и желаемого результата:
The output should look something like this: | However what I end up with is this:
Model A Model A - Variant1 | Model A Model A - Variant1
Model A - Variant2 | Model A - Variant2
Model A - Variant3 | Model A - Variant3
Model B Model B - Variant1 | Model B
Model C Model C - Variant1 | Model C
Model C - Variant2 |
Какие изменения я должен сделать в while
петли, чтобы сделать эту работу?
Спасибо!
Вы должны обновлять результаты $ rs_variant на каждой итерации во внешнем цикле, используя в качестве условия $ rs_main_model-> fields [‘model’]. Попробуйте следующее
<?php while (!$rs_main_model->EOF) { ?>
<div>
<div>
<h2<?php echo $rs_main_model->fields['model']; ?></h2>
<?php $sql_variant = "SELECT * FROM tbl_catalog WHERE model_body = '".$rs_main_model->fields['model_body']."'"; $rs_variant = $db -> Execute($sql_variant); ?>
</div>
<div>
<?php while (!$rs_variant->EOF) { ?>
<?php echo $rs_variant->fields['variant']; ?>
<?php $rs_variant->MoveNext(); } ?>
</div>
</div>
<?php $rs_main_model->MoveNext(); } ?>
Других решений пока нет …