gpt4 book ai didi

php 输出不显示第一项详细信息和错误

转载 作者:行者123 更新时间:2023-11-29 13:07:30 25 4
gpt4 key购买 nike

enter image description here

好的,抱歉打扰了。我有两个问题

  1. 为什么我会收到上面的错误。

  2. 我正在将商品添加到购物篮中。 在一个 session 中不能多次预订任何商品。购物车商品 1 和购物车商品 4 是同一商品,但当我将第一个商品添加到购物篮时。它没有显示应该是 bookid: 1 的 $key $value,但显示了其余项目的信息,如您在上面看到的。

如有任何问题,请提出,我们将不胜感激。

PHP 和 HTML

<?php
include 'header.php';

$bookInBasket = "";

if(isset($_POST['bid'])){
$bid = $_POST['bid'];
$wasFound = FALSE;
$i = 0;
if(!isset($_SESSION["basket_array"]) || count($_SESSION["basket_array"]) < 1) {
$_SESSION["basket_array"] = array("bookid" => $bid);
} else {
foreach($_SESSION["basket_array"] as $each_item){
$i++;
while(list($key, $value) = each($each_item)){
if($key == "bookid" && $value == $bid){
$bookInBasket = "Sorry. You can only reserve one of each book at one time.";
$wasFound = true;
}
}
}
if($wasFound==FALSE){
array_push($_SESSION["basket_array"], array("bookid" => $bid));
}
}
}

if(isset($_GET['cmd']) && $_GET['cmd'] == "emptybasket"){
unset($_SESSION["basket_array"]);
}

$cartOutput ="";

if(!isset($_SESSION["basket_array"]) || count($_SESSION["basket_array"]) < 1){
$cartOutput = "<h2 align='center'>You need to add Books to view them here.</h2>";
} else {
$i = 0;
foreach($_SESSION["basket_array"] as $each_item){
$i++;
$cartOutput .= "<h2>Cart Item $i </h2>";
while (list($key, $value) = each($each_item)) {
$cartOutput .= "$key : $value <br />";
}
}
}

?>

<div id="azcontent">
<h1>Basket</h1>

<?php echo $cartOutput; ?>
<br /><br />
<a href="basket.php?cmd=emptybasket">Empty Basket</a>
<div> <?php echo $bookInBasket ?> </div>
</div>
</body>
</html>

session 输出(转储)

array(4) { 
["bookid"]=> string(1) "1"

[0]=> array(1) { ["bookid"]=> string(1) "2" }

[1]=> array(1) { ["bookid"]=> string(1) "3" }

[2]=> array(1) { ["bookid"]=> string(1) "1" }

}

最佳答案

当您初始化数组时与使用 array_push 向数组添加内容时,就会出现问题。每次使用 array_push 时,它都会添加一个新元素,即索引数组。当您在此处初始化数组时:

if(!isset($_SESSION["basket_array"]) || count($_SESSION["basket_array"]) < 1) {
$_SESSION["basket_array"] = array("bookid" => $bid);
} else {

它只是添加一个键值对,而不是一个带有索引的数组。您可以通过将该行更改为来解决此问题:

if(!isset($_SESSION["basket_array"]) || count($_SESSION["basket_array"]) < 1) {
$_SESSION["basket_array"] = array( array("bookid" => $bid));
} else {

代码的其余部分用于处理索引数组的数组(主要通过使用 foreach 语句),而不是更扁平的键值对数组。

关于php 输出不显示第一项详细信息和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22515643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com