Don Arana
Новичок
Сравнение товаров
Привет всем!
Не могу найти оптимальный вариант вывода сравнения товаров.
У меня пока так:
на странице со списком товаров напротив каждого стоит checkbox, есть кнопочка - "сравнить выбранные товары" и методом POST другому скрипту (другой странице) присылаются коды выбранных товаров.
А на странице обработчике (которая и выводит сравнение характеристик) происходит обработка POST данных, запросы к базе и вывод таблицы характеристик.
Выглядит таблица так:
Характеристика | Товар 1 | Товар 2 | Товар 3 |
---------------------+------------+----------+-----------+
Цена ................. | .... | .... | .... |
---------------------+------------+----------+-----------+
Вес ................... | .... | .... | .... |
---------------------+------------+----------+-----------+
и т.п.
Как выглядит код:
Страница с чекбоксами:
напротив каждого товара -
<input type="hidden" value="<?=$artik?>"><input type="checkbox" name="selected[]" value="<?=$artik?>">
<input type="submit" name="compare" value="сравнить выбранные товары">
Страница - обработчик:
?>
<table width="100%">
<tr>
<td><b>Характеристика</b></td>
</tr>
<tr>
<td><b>Цена</b></td>
<td>
</td>
</tr>
<tr>
<td><b>Вес</b></td>
<td>
</td>
</tr>
А если характеристик около 20 - 30ти?
Скрипт очень сильно замедляется как мне показалось....
Подскажите, я наверное совсем глупо сделал и есть более элегантное решение?
Привет всем!
Не могу найти оптимальный вариант вывода сравнения товаров.
У меня пока так:
на странице со списком товаров напротив каждого стоит checkbox, есть кнопочка - "сравнить выбранные товары" и методом POST другому скрипту (другой странице) присылаются коды выбранных товаров.
А на странице обработчике (которая и выводит сравнение характеристик) происходит обработка POST данных, запросы к базе и вывод таблицы характеристик.
Выглядит таблица так:
Характеристика | Товар 1 | Товар 2 | Товар 3 |
---------------------+------------+----------+-----------+
Цена ................. | .... | .... | .... |
---------------------+------------+----------+-----------+
Вес ................... | .... | .... | .... |
---------------------+------------+----------+-----------+
и т.п.
Как выглядит код:
Страница с чекбоксами:
напротив каждого товара -
<input type="hidden" value="<?=$artik?>"><input type="checkbox" name="selected[]" value="<?=$artik?>">
<input type="submit" name="compare" value="сравнить выбранные товары">
Страница - обработчик:
PHP:
if(isset($_POST['compare'])) {
$items_total = count($_POST['selected']);
$articul = $_POST['selected'];
}
<table width="100%">
<tr>
<td><b>Характеристика</b></td>
PHP:
<?
for($i = 0; $i < $items_total; $i++) {
echo "<td>Товар №.$k++."</td>";
$query = ... SELECT ... FROM ... WHERE ... AND articul = '$articul[$i]
$sql = mysql_fetch_array($query);
$art[] = $sql['articul'];
$weight[] = $sql[weight'];
$price[] = $sql['price'];
?>
PHP:
## И вот тут пошли опять эти циклы :(
<td><b>Цена</b></td>
PHP:
<? for($i = 0; $i < $items_total; $i++) { ?>
PHP:
<?=$price[$i]?>
PHP:
<? } ?>
<tr>
<td><b>Вес</b></td>
PHP:
<? for($i = 0; $i < $items_total; $i++) { ?>
PHP:
<?=$weight[$i]?>
PHP:
<? } ?>
А если характеристик около 20 - 30ти?
Скрипт очень сильно замедляется как мне показалось....
Подскажите, я наверное совсем глупо сделал и есть более элегантное решение?