Mysql行返回数组中的最后一个值,但我期望整行

时间:2016-06-15 06:13:23

标签: php mysql sql database php-5.5

这是我的购物车代码:

function cart() {

    $total = 0;
    $item_quantity = 0;
    $item_name = 0;
    $item_number = 1;
    $amount = 1;
    $quantity = 1;

    foreach ($_SESSION as $name => $value) {

        if($value > 0 ) {

            if(substr($name, 0, 8) == "product_"){

                $length = strlen($name - 8);
                $id = substr($name, 8 , $length);

                $query = query("SELECT * FROM products WHERE product_id = " . escape_string($id)." ");
                confirm($query);

                $titleArr = array();
                while($row = fetch_array($query)) {
                    $titleArr[$id] = $row['product_title'];
                    $product_name = implode(",", $titleArr);
                    $order_product = $product_name . "-". $value;

                    $sub = $row['product_price']*$value;
                    $item_quantity +=$value;
                    $item_number++;
                    $amount++;
                    $quantity++;
                    $id++;
                }
                $_SESSION['item_total'] = $total += $sub;
                $_SESSION['item_quantity'] = $item_quantity;
                $_SESSION['item_name'] = $order_product;

            }
        }
    }
}

我在网上搜索了很长时间,请指教。

$_SESSION['item_name'] = $order_product;

它从fetch_array中提供最后一个值我想在购物车页面上显示所有产品标题。

3 个答案:

答案 0 :(得分:1)

如果您想在购物车页面上显示所有产品标题,请制作two dimensional Array

替换此

$order_product = $product_name . "-". $value;

$order_product[] = $product_name . "-". $value;

while loop分配数组之前: -

$order_product = array();

答案 1 :(得分:1)

这些改变都应该有效......

这将m all放入一个数组......

$_SESSION['item_name'] = array();

foreach ($_SESSION as $name => $value) {

    ...

    $_SESSION['item_total'] = $total += $sub;
    $_SESSION['item_quantity'] = $item_quantity;
    array_push($_SESSION['item_name'],$order_product);

    ...
}

这将它们放入逗号分隔的字符串......

$_SESSION['item_name'] = '';

foreach ($_SESSION as $name => $value) {

    ...

    $_SESSION['item_total'] = $total += $sub;
    $_SESSION['item_quantity'] = $item_quantity;
    $_SESSION['item_name'] .= $order_product.', ';

    ...
}

$_SESSION['item_name'] = rtrim($_SESSION['item_name'],' ');
$_SESSION['item_name'] = rtrim($_SESSION['item_name'],',');

答案 2 :(得分:0)

循环更新

$total  = 0     
while($row = fetch_array($query)) {
    $titleArr[$id] = $row['product_title'];
    $product_name = implode(",", $titleArr);
    $order_product = $product_name . "-". $value;

    $sub = $row['product_price']*$value;
    $item_quantity +=$value;
    $item_number++;
    $amount++;
    $quantity++;
    $id++;
    $total += $sub; 
    $_SESSION['item_name'][] = $order_product;
}
$_SESSION['item_total'] = $total;
$_SESSION['item_quantity'] = $item_quantity;