0

我有一个二维数组,我想将其值检索到单独的变量中。我正在使用这些代码,但它给了我一个错误说

警告: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;
    }



?>  

我不知道错误在哪里。谁能帮帮我

4

2 回答 2

1

您正在尝试循环数组,就好像它是数据库结果集一样。您实际上不需要在这里循环,您可以直接通过键访问值。

例如,试试这个:

echo $each_item['date'];
于 2012-07-05T05:31:38.950 回答
0

使用这种方式:

$result = array();
foreach($_SESSION["bill_array"] as $row){
    $result[] = $row;
}
echo '<pre>';
print_r($result);
echo '</pre>';

这样,您将在数组中获得结果。并实际使用访问这些变量。

$result[0]、$result[1] 等

于 2012-07-05T06:03:50.717 回答