我有一个二维数组,我想检索其值以分离变量。 我正在使用这些代码,但它给我一个错误说
警告:mysql_fetch_assoc()期望参数1是资源,
中给出的数组这是我用来为多维会话分配值的代码。
if(isset($_POST['adnother'])) {
$date = $_POST['date'];
$billnmbr = $_POST['billnmbr'];
$itemcode = $_POST['itemcode'];
$itemname = $_POST['itemname'];
$exdate = $_POST['exdate'];
$eachprice = $_POST['eachprice'];
$itmtotal = $_POST['itmtotal'];
$wasFound=false;
$i=0;
//if the bill session variable is not set or cart array is empty
if(!isset($_SESSION["bill_array"]) || count($_SESSION["bill_array"]) < 1 ) {
// Run if the bill is empty or not set
$_SESSION["bill_array"]= array(1 => array("date"=> $date, "billnmbr"=> $billnmbr, "itemcode"=> $itemcode, "itemname"=> $itemname, "exdate"=> $exdate, "eachprice"=> $eachprice, "itmtotal"=> $itmtotal));
} else {
// Run if the bill has at least one item in it
foreach($_SESSION["bill_array"] as $each_item) {
$i++;
while(list($key,$value)=each($each_item)){
if($key=="itemcode" && $value == $itemcode){
// That item is in cart already so push a error message in to screen
$wasFound = true;
?>
<script type="text/javascript">
var error = "<?= $wasFound ?>";
if(error == "true") {
alert("You trying to add same item twice")
}
</script>
<?php
}//close if condition
}//close while loop
}//close foreach loop
if($wasFound==false){
array_push($_SESSION["bill_array"],array("date"=> $date, "billnmbr"=> $billnmbr, "itemcode"=> $itemcode, "itemname"=> $itemname, "exdate"=> $exdate, "eachprice"=> $eachprice, "itmtotal"=> $itmtotal));
}
}
在分配后我试图用这些代码检索这些日期
<?php
$cartOutput="";
if(!isset($_SESSION["bill_array"]) || count($_SESSION["bill_array"]) < 1 ) {
$cartOutput = "<h2 align='center'> Bill is still empty </hd>";
}
else {
$i = 0;
foreach ($_SESSION["bill_array"]as $each_item ) {
$i++;
echo $cartOutput = "<h2> Bill item $i </h2>";
while($row=mysql_fetch_assoc($each_item)){
$date1=$row["date"];
$billnmbr1=$row["billnmbr"];
$itemcode1=$row["itemcode"];
$itemname1=$row["itemname"];
$exdate1=$row["exdate"];
$eachprice1=$row["eachprice"];
$itmtotal1=$row["itmtotal"];
}
}
echo $date1;
echo $billnmbr1;
echo $itemcode1;
echo $itemname1;
echo $exdate1;
echo $eachprice1;
echo $itmtotal1;
}
?>
我无法弄清楚错误的位置。请有人帮帮我吗
答案 0 :(得分:1)
您正在尝试将数组循环,就像它是数据库结果集一样。你实际上不需要循环,你可以直接通过键访问值。
例如,试试这个:
echo $each_item['date'];
答案 1 :(得分:0)
使用这种方式:
$result = array();
foreach($_SESSION["bill_array"] as $row){
$result[] = $row;
}
echo '<pre>';
print_r($result);
echo '</pre>';
这样你就可以在数组中得到结果。 实际上使用。
访问这些变量$ result [0],$ result [1]等