PHP/MySQL - 创建多维数组

标签 php mysql

这是我的代码:

<?php
if ($result->num_rows > 0) {
    $total                = 0; // used for displaying the total price at the bottom
    $_SESSION['foodname'] = array();
    while ($row = $result->fetch_assoc()) {
?>
               <tbody>
                    <tr>
                        <td data-th="Product">
                            <div class="row">
                                <div class="col-sm-2 hidden-xs"><br><img src="../images/food/<?php
        echo $row['food_img'];
?>" alt="" class="img-responsive" width="100%"/></div>
                                <div class="col-sm-10">
                                    <h4 style="margin-left:20px;"><br><?php
        echo $row['food_name'];
?></h4>
                                </div>
                            </div>
                        </td>
                        <td data-th="Price"><br>Rs. <?php
        $price = $row['price'];
        echo $price;
?></td>
                           <form action="" method="POST">
                                <td data-th="Quantity"><br>
                                    <input type="number" name="quantity" class="form-control text-center" value="<?php
        $fquantity = $row['food_quantity'];
        echo $fquantity;
?>" min="1" max="<?php
        echo $row['quantity'];
?>">
                                </td>
                                <td data-th="Subtotal" class="text-center"><?php
        $sub_total = ($price * $fquantity);
        echo '<br>$ ' . $sub_total;
        $total = $total + $sub_total;
?>
                               </td>
                                <td class="actions">
                                        <br><input type="submit" class="btn btn-info btn-sm" value="Update Quantity" name="update">
                                    <a class="btn btn-danger btn-sm" href="../CRUD/delete.php?id=<?php
        echo $row['food_id'];
?>&q=<?php
        echo $fquantity;
?>">Remove Item</a>
                                </td>
                            </form>
                    </tr>
                </tbody>
<?php
        $_SESSION['foodname'] = array(
            "name" => $row['food_name'],
            "price" => $row['price']
        );
    }
    print_r($_SESSION['foodname']); // PRINTING ONLY LAST VALUE
}
?>

正如你可以清楚地看到的,下面这行代码是在 while 循环内编写的,但是我只能看到最后一个数据项的详细信息。

$_SESSION['foodname'] = array("name" => $row['food_name'], "price" => $row['price']);

我做的事情是根本错误的吗?

最佳答案

问题在于您在循环内设置 $_SESSION 的方式。每次执行循环时您都会覆盖。让它们成为一个数组并且应该可以工作:

//-------------------▾▾
$_SESSION['foodname'][] = array(
    "name" => $row['food_name'],
    "price" => $row['price']
);

请注意$_SESSION['foodname']后面的[]

关于PHP/MySQL - 创建多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52410419/

相关文章:

mysql - 在 mysql 中声明是否给出语法错误?

php - 在 Codeigniter 中创建 Cookie

php - 在没有 Cron 作业的情况下创建计划任务

javascript - 如何从mysql中选择多边形中的标记

具有 2 个表的 MySQL 查询

Mysql数据显示多行而不是一行

php - 在 PHP 和 MySQL 中一次从多个表单插入多个值

php - 向/从服务器 cocos2d-x 发送/检索 xml 文件

php - 有没有办法查询 MySQL 数据库两次并将第二次查询的结果添加到与第一次查询的结果相同的数组中?

php - 原型(prototype)和显示 :none