Как объединить два столбца, например: product_name (product_quantity), ..... из таблицы в цикле while и сохранить в переменной - PullRequest
0 голосов
/ 01 июня 2019

У меня есть таблица с двумя столбцами: product_name и product_qty с несколькими строками

Я хочу выводить как:

product_name (product_qty) .........

как этот

product_one (2), product_two (4), product_three (1)

Я пытаюсь этим методом:

require 'config.php';
$grand_total = 0;
$items = array();
$qty = array();
$allItems ='';
$stmt = $conn->prepare("SELECT * FROM cart");
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()){
    $grand_total +=$row['total_price'];
    $items[] = $row['product_name'];
    $qty[] = $row['qty'];
}
$array = array_combine($items, $qty);
foreach ($array as $key => $value) {
    $allItems .= $key."(".$value."), ";
}

Иполучить вывод в виде: product_one (2), product_two (4), product_three (1),

но я не хочу запятую в прошлом ......

Ответы [ 2 ]

1 голос
/ 01 июня 2019

ОК, ответ в заголовке вашего вопроса. :), как показано ниже:

select concat(product_name,'(',product_qty,')') as result from my_table;

И пример данных см. Ниже:

mysql> select * from my_table;
+---------------+-------------+
| product_name  | product_qty |
+---------------+-------------+
| product_one   |           2 |
| product_two   |           4 |
| product_three |           1 |
+---------------+-------------+
3 rows in set (0.00 sec)

mysql> select concat(product_name,'(',product_qty,')') as result from my_table;
+------------------+
| result           |
+------------------+
| product_one(2)   |
| product_two(4)   |
| product_three(1) |
+------------------+
3 rows in set (0.00 sec)
0 голосов
/ 01 июня 2019

Вы можете сделать это, используя функцию CONCAT

ВЫБРАТЬ КОНКАТ (product_name, '', product_qty) ОТ table

Нет необходимости использоватьforeach и array_combine все.Из самого запроса вы можете получать данные по мере необходимости.Проверьте ниже свой код обновления

$grand_total = 0;
$sqlStmt = "SELECT CONCAT(product_name, '(', product_qty,')') AS ItemQty,total_price FROM cart";
$stmt = $conn->prepare($sqlStmt);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()){
    $grand_total +=$row['total_price'];
    $items[] = $row['ItemQty'];
}
echo "<pre>";
print_r($items);
print_r($grand_total);

Пример вывода

Array (
[0] => product_one(2)
[1] => product_two(4)
[2] => product_one(2)
[3] => product_two(4)
[4] => product_three(1) ) 1700
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...