2012-07-05 4 views
0

У меня есть двумерный массив, и я хочу получить его значение для разделения переменных. я использую эти коды, но это дает мне ошибку говоряПолучение данных из многомерного массива с php

Предупреждения: 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; 
    } 



?> 

я не могу понять, где ошибка. может кто-нибудь мне помочь

+1

mysql_fetch_assoc нужен, а не РЕСУРСЫ массив, который вы получили от сессии. – xdazz

+0

да, это что-то, но как я могу исправить этот код? – Yasitha

+0

Я также попытался использовать mysql_fetch_array, но он также дал мне ту же ошибку – Yasitha

ответ

1

Вы пытаетесь закольтать массив, как если бы это был набор результатов базы данных. На самом деле вам здесь не нужен цикл, вы можете просто получить доступ к значениям напрямую, по ключевым словам.

Например, попробуйте следующее:

echo $each_item['date']; 
+0

Я сделал это, но теперь он дает мне ошибку, говоря ... Примечание: Неинициализированное смещение строки: 0 в J: \ xampp \ htdocs \ pharmacy \ biling.php в строке 290 в строке 290 У меня есть этот код $ date1 = $ row ["date"]; – Yasitha

+1

Ну, я нашел дополнительный ')' кода, который я разместил (теперь исправлено), но он не должен вызывать * эту ошибку *. – bfavaretto

+0

да, я уже удаляю это), но все же он дает эту ошибку – Yasitha

0

Используйте этот путь:

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

Таким образом, вы получите результат в виде массива. И на самом деле получить доступ к этим переменным.

$ Результат [0], $ результат [1], и т.д.

+0

с помощью этого я могу получить эту rray ( [0] => Массив ( [дата] => а [billnmbr] => [Артикул] => [ItemName] => [exdate] => [eachprice] => [itmtotal] => ) [1] => Массив ( [дата] => аа [billnmbr] => [Артикул] => б [ItemName] => [exdate] => [eachprice] => [itmtotal] => ) [2] => Массив ( [дата] => с [billnmbr] => г [] = Артикул> е – Yasitha

Смежные вопросы