Пытаюсь сделать выгрузку товаров из корзины магазина с помощью PHPExcel
$export_cart_products = $_SESSION['cart']['products'];
foreach ($export_cart_products as $key => $row) {
$phpexcel->getActiveSheet()->setCellValue("A$i", $row['product_id']);
$string = $row['product'];
$phpexcel->getActiveSheet()->setCellValueExplicit("B$i", $string, PHPExcel_Cell_DataType::TYPE_STRING);
$phpexcel->getActiveSheet()->setCellValue("C$i", $row['price']);
$phpexcel->getActiveSheet()->setCellValue("D$i", $row['amount']);
$result_array = array();
foreach ($row['product_options'] as $option_id => $variant_id) {
$option_name = db_get_fields("SELECT option_name FROM ?:product_options_descriptions WHERE option_id = ?i", $option_id, $variant_id, CART_LANGUAGE);
$variant_name = db_get_fields("SELECT variant_name FROM ?:product_option_variants_descriptions WHERE variant_id = ?i", $variant_id, $option_id, CART_LANGUAGE);
};
__ плейсхолдеры ?: заменяются на значение cscart_
во втором foreach
пытаюсь вывести опции товара, опции приходят в виде массива
array = [4] => 34, [3] => 12
каждый ключ и каждое значение это название "цвет", "размер", "XXL(большой размер)", "Синий", "Красный" и т.д. соответственно нужен запрос к базе, чтобы их вывести(подозреваю, что мой запрос к базе не совсем корректный). Сейчас получается только вариант с одной парой "Цвет: Синий" или "размер: XL", но у товара несколько таких значений(цвет, размер...).
Как сделать так, чтобы он выводил все опции товара.
Совсем запутался, а проект надо делать. xls корректно сохраняется, только без опций, а опции нужны.
foreach ($row['product_options'] as $option_id => $variant_id) {
$option_name = db_get_fields("SELECT option_name FROM ?:product_options_descriptions WHERE option_id = ?i", $option_id, $variant_id, CART_LANGUAGE);
$variant_name = db_get_fields("SELECT variant_name FROM ?:product_option_variants_descriptions WHERE variant_id = ?i", $variant_id, $option_id, CART_LANGUAGE);
};
Здесь в цикле перезаписыватся значения и будет получено только одно на выходе, как ни крути.
Должен сохраняться массив, если нужен массив. Например так:
foreach ($row['product_options'] as $option_id => $variant_id) {
$option_name[] = db_get_fields("SELECT option_name FROM ?:product_options_descriptions WHERE option_id = ?i", $option_id, $variant_id, CART_LANGUAGE);
$variant_name[] = db_get_fields("SELECT variant_name FROM ?:product_option_variants_descriptions WHERE variant_id = ?i", $variant_id, $option_id, CART_LANGUAGE);
};
Но может быть лучше использовать ассоциативный массив с foreach для записи значений или цикл for с индексами с массивом.
Вот пример с ассоциативным:
foreach ($row['product_options'] as $option_id => $variant_id) {
$option_name = db_get_fields("SELECT option_name FROM ?:product_options_descriptions WHERE option_id = ?i", $option_id, $variant_id, CART_LANGUAGE);
$variant_name = db_get_fields("SELECT variant_name FROM ?:product_option_variants_descriptions WHERE variant_id = ?i", $variant_id, $option_id, CART_LANGUAGE);
$options[] = ['option_name' => $option_name, 'variant_name' => $variant_name];
};
Тут в зависимости как нужно дальше обрабатывать массив.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Для чего нужны template template parameters в шаблонных классах и функциях, ведь можно передавать им аргументы, которые являются шаблонами, с помощью обычных...
У меня есть класс, у него два объекта: window2, window3Как настроить виджеты (установить параметры кнопок, например) именно в window3 не зависимо от window2?