2016-05-27 4 views
1

これまでのコードです。 私はその注射についてはあまり安全ではないことを知っています。 Eにショッピングカートで同じタイプの商品が数えられないのはなぜですか?

サポートされていないオペランドの種類::\ HostingSpaces \ Knoppers1 \ topjop.nl \ wwwrootの\ポータルコア\ \ tj_functions.php上

が、私の問題は私のカートは製品が追加されますが、時々私は得ることです行358

エラーと私は同じ種類の複数の項目を追加することはできません。

line 358: $_SESSION['cart'][$uid] += 1;//

他の関連の質問は私を助けていなかったので、たぶん、あなたのいくつかは知っています。あなたはfollwoingスニペットではそのようにそれを読むよう

function toevoegen(){ 
    session_start(); 
    if(!isset($_SESSION['cart'])){ 
     $_SESSION['cart'] = array(); 
    } 
    if(isset($_GET['add'])) { 
     $info = 'U heeft een product toegevoegd <META HTTP-EQUIV=REFRESH CONTENT="1; URL=http://topjop.nl/portal/winkelmandje.php">'; 
     $uid = 0; //update id 
     foreach($_SESSION['cart'] as $id => $data){ 
      if($data[0]==$_GET['add']){ 
       $uid = $id;// 
      } 
     } 
     if($uid == 0){ 
      array_push($_SESSION['cart'],array($_GET['add'],1));// 
     }else{ 
      $_SESSION['cart'][$uid] += 1;// 
     } 
    } 
    else { 
     $info = ''; 
    } 
    return $info; 
} 

function winkelmandje(){ 
    mysql_connect("mysql8.mijnhostingpartner.nl","",""); 
    mysql_select_db("Knoppers1_portal"); 
    session_start(); 
    $mand = '<table id="winkelmandje_tabel"><tr><td>Product</td> 
    <td>Stukprijs</td><td>Aantal</td><td>Totaal bedrag</td><td></td></tr>'; 
    foreach($_SESSION['cart'] as $data){ 
     $id = $data[0];// 
     $value = $data[1];// 
     if($value>0){ 
      $get = mysql_query('SELECT id, name, price FROM products WHERE id='.mysql_real_escape_string((int)$id)); 
      while ($get_row = mysql_fetch_assoc($get)) { 
       $totaal = $get_row['price']*$value; 
       $totaalprijs = number_format($totaal,2,',','.'); 
       $mand .= '<tr><td>'.$get_row['name'].'</td> 
       <td>&euro;'.$get_row['price'].'</td><td>'. $value .'</td> <td>&euro;'.$totaalprijs.'</td></tr>'; 
      } 
     } 
     else{ 
     } 
    } 
    $aantal = ''; 
    $kosten = ''; 
    return $mand.'<tr><td><b>Totaal:</b></td><td></td><td><b>'. $aantal .'</b></td><td><b>'. $kosten .'</b></td></tr></table>'; 
} 
toevoegen = ADD<br> 
winkelmandje = SHOPPINGCART 
+0

は '$ _SESSION [ 'カート'] [$のuidが]'あなたはそれがあることを期待変数の型であることをあなたは確かにありますか?あなたがしようと何かしようとすると、あなたは[通常このエラーが表示されます](http://stackoverflow.com/questions/2108875/php-fatal-error-unsupported-operand-types)int型の配列を除算するような何か... – Henders

+0

@ヘンダーズは、そのコードは後になるだろうか? –

+0

'var_dump($ _ SESSION ['cart'] [$ uid]);'のようなことをすれば、その値が実際に何であるかを知るべきです。ブール値/配列/などのように1を加えることができないもののように見えます – Henders

答えて

0

$ _SESSION [ 'カート'] [$のUID]のように思えるが、idと値を含む配列である:

$id = $data[0];// 
$value = $data[1];// 
0

それは[$ _SESSIONを思わ'cart'] [$ uid]は配列です。あなたは+ = 1

を行うことができないかもしれない

$_SESSION['cart'][$uid][1] += 1; // increment $value 
+0

配列のインデックスに何かを追加したいと思うのはなぜですか?確かにこれは、私が何かを逃していない限り、「未定義のインデックス通知」の危険にさらされているだけです... – Henders

+0

@Henders $ _SESSION ['cart'] [$ uid] [0] => id of product、 $ _SESSION ['cart'] [$ uid] [1] =>商品数量 $ _SESSION ['cart'] [$ uid] [1]は、$ uidが0のときに初期設定されます – billyjoe25

+0

十分なフェア!私は '[1]'が常に設定されることを知りませんでした:) – Henders

関連する問題