2016-06-01 11 views
-2

私のカートアイテムをデータベースに保存しようとしています。 これは私が試したことであり、それは仕事をしなかった、誰も私を助けてください。セッションデータをデータベースに挿入する方法

if (isset($_POST['submit'])) 
    { 
      include ('config.php'); 
      foreach ($_SESSION["products"] as $cart_itm) 
      { 
       $kod_barang = $cart_itm["kod_barang"]; 
       $nama_barang = $cart_itm["nama_barang"]; 
       $kuantiti = $cart_itm["qty"]; 
       $insert_row = $mysqli->query("INSERT INTO `maklumat_permohonan`(`kod_barang`, `nama_barang`, `kuantiti`, `nombor_order`) 
        VALUES ('$kod_barang','$nama_barang','$kuantiti')"); 

        if($insert_row){ 
        print 'Please keep the Transaction ID for future reference<br />'; 
        ?> 
        <a href="index.php">Back</a> 
        <?php 
        }else{ 
        die('Error : ('. $mysqli->errno .') '. $mysqli->error); 
        }  
      } 
    } 

これは、これはサーバークライアントのトピックの私の論文のためのセッションを使用してPHPで私の初期の学習であるように私のコードは、あまりにもまともな、適切でない場合は申し訳ありませんイムどのように私のカートのセッションルックのような、です。あなたのドンとして

if(isset($_SESSION["products"])) 
{ 
    $total = 0; 
    echo '<form method="post" action="simpan_permohonan.php">'; 
    echo '<ul>'; 
    $cart_items = 0; 
    foreach ($_SESSION["products"] as $cart_itm) 
    { 
     $product_code = $cart_itm["code"]; 
    $results = $mysqli->query("SELECT nama_barang,jenis_barang FROM data_barang WHERE kod_barang='$product_code' LIMIT 1"); 
     $obj = $results->fetch_object(); 

     echo '<li class="cart-itm">'; 
     echo '<span class="remove-itm"><a href="cart_update.php?removep='.$cart_itm["code"].'&return_url='.$current_url.'">    &times;</a></span>'; 

     echo '<div class="product-info">'; 
     echo '<h3>'.$obj->nama_barang.' (Code :'.$product_code.')</h3> '; 
     echo '<div class="p-qty">Kuantiti : '.$cart_itm["qty"].'</div>'; 
     echo '<div>'.$obj->jenis_barang.'</div>'; 
     echo '</div>'; 
     echo '</li>'; 
     $subtotal = ($cart_itm["price"]*$cart_itm["qty"]); 
     $total = ($total + $subtotal); 

     echo '<input type="hidden" name="item_name['.$cart_items.']" value="'.$obj->nama_barang.'" />'; 
     echo '<input type="hidden" name="item_code['.$cart_items.']" value="'.$product_code.'" />'; 
     echo '<input type="hidden" name="item_desc['.$cart_items.']" value="'.$obj->jenis_barang.'" />'; 
     echo '<input type="hidden" name="item_qty['.$cart_items.']" value="'.$cart_itm["qty"].'" />'; 
     $cart_items ++; 

    } 
    echo '</ul>'; 
    echo '<span class="check-out-txt">'; 
    echo '<input type="submit" value="Simpan" />'; 
    echo '</span>'; 
    echo '</form>'; 

}else{ 
    echo 'Troli Anda Kosong'; 
} 
+0

エラーは何ですか? –

+0

エラーはありませんが、データベースに何も変わっていないようです –

答えて

1

; tは、正確なエラーを共有し、私はちょうどあなたのINSERT文が脱出し、おそらく'休憩のSQLが発生されていないことを推測しています。

prepared statementsを真剣に検討してください。そうしないと、アプリケーションはSQL injectionに非常に脆弱です。

+0

これは学習目的のプロジェクトなので、今のところインジェクションや何かについては心配しません。しかし、私はmysqlのセッションデータを保存することに関して、このトピックでこれらの過去数日間問題を抱えているようですが、私のコーディングは正しいですか?私の壊れた英語のために申し訳ありません。今私の職場ではないので、私は正しいフィードバックを与えることが難しいので、質問の終わりにdieを追加するのを忘れていました。 –

+0

@MohdFadli:注射について心配しないという事実は、正しいことをやっていない理由であってはなりません。準備されたステートメントは、(正確に使用される場合)クエリをスピードアップし、あなたのためにデータをエスケープする問題を処理します。あなたのケースでそれらを使用しない理由はありません。 – rkosegi

+0

@MohdFadlioこれは学習についてのことです**クエリを定義する正しい方法を学ぶ**。私はここでとてもひどく聞こえて申し訳ありませんが、もしあなたが準備された声明を使用しなければ、避けられたかもしれない愚かな間違いを追跡する時間を無駄にするでしょう。それは正しいとそれは完了です。それは間違ったやり方で、後で、おそらくそれは非常に有害な方法で*誤動作するでしょう。 – tadman

関連する問題