how to insert data php javascript mysql with multiple array session 2 -


i have method method discussed , successful data entered 1 when more 1 can not database

this programs

my php form :

<form class="form-horizontal" id="form-produk">      <div class="control-group" >         <label class="control-label" for="kelas">kategori</label>     <div class="controls">             <select class='form-control' name='id_kategori'>  <?php           $tampil=mysql_query("select * kategori order nama_kategori");           if ($id_kat==0){             echo "<option value=0 selected>- pilih kategori -</option>";           }               while($w=mysql_fetch_array($tampil)){             if ($id_kat==$w[id_kategori]){               echo "<option value=$w[id_kategori] selected>$w[nama_kategori]</option>";             }             else{               echo "<option value=$w[id_kategori]>$w[nama_kategori]</option>";             }           }?>     </select>     </div>    </div>     <div class="control-group">         <label class="control-label" for="produk">nama produk</label>     <div class="controls">     <?php if($id_kat > 0){         ?>                 <input type="text" name="editprod" class="form-control" value="<?php echo $nama_prod;?>"/>                 <?php } else{                     ?>                     <input name='add_btn' class="btn btn-primary" value='tambah record' id='add_btn' type='button'><br><br>                   <div id='container1'></div>         <?php } ?>                     </div>                     </div> </form>           <script type="text/javascript"> $(document).ready(function() {          var count = 0;    $("#add_btn").click(function() {     count++;     $('#container1').append(       '<div class="records">' + '<textarea id="' + count + '" name="' + count + '" type="text" size="100" class="form-control nma_prod"></textarea>' + '<div class="hrgini"><span class="input-group-addon">rp</span><input style="text-align:right" id="' + count + '" name="' + count + '" class="form-control hrg_prod" type="text" placeholder="harga produk"><span class="input-group-addon">,00</span></div>' + '<button class="remove_item btn btn-danger" >hapus</button>' + '<br><br></div>'     );   });    $('body').on('click', ".remove_item", function(ev) {     $(this).parents(".records").fadeout();     $(this).parents(".records").remove();   });         }); </script> 

my javascript :

$("#simpan-produk").bind("click", function(event) {             var url = "pages/produk/produk.input.php";             var data =[];                  $('.records').each(function(index, item) {     var nma_prod = $(item).find('.nma_prod').val();     var hrg_prod = $(item).find('.hrg_prod').val();     data.push({       kat_prod: v_kat,       nma_prod: nma_prod,       hrg_prod: hrg_prod     });   });               var v_kat = $('select[name=id_kategori]').val();               // mengirimkan data ke berkas transaksi.input.php untuk di proses             $.post(url, {     data: json.stringify(data), kat: v_kat, id: id_produk   }, function() {                 // tampilkan data mahasiswa yang sudah di perbaharui                 // ke dalam <div id="data-mahasiswa"></div>                 $(".msg").html("<div class='alert alert-success alert-dismissable' id='alerts'> data sukses di simpan</div>");                     $(".msg").fadein(3500);                     $(".msg").show();                     $(".msg").fadeout(5500);                 $("#data-produk").load(main);                   // sembunyikan modal dialog                 $('#mymodal').modal('hide');                  // kembalikan judul modal dialog                 $("#mymodallabel").html("tambah data produk");             });         }); 

my php process :

$data   = $_request['data'];         $data   = json_decode($data, true);         $query  = '';             foreach($data $item ){                 $kat= $item['kat_prod'];                 $nma_prod = $item['nma_prod'];                 $hrg_prod = $item['hrg_prod'];             $query .="insert `produk` values('','$_post[kat]','$nma_prod','$hrg_prod')";             }  if ($query) {     $exec = mysql_query($query);     if ($exec) {         echo json_encode(array('msg' => 'data inserted successfully!'));         exit;     } else {         echo json_encode(array('msg' => 'something went wrong!'));         exit;     } } else {     echo json_encode(array('msg' => 'nothing insert!'));     exit; } 

this method work's 1 data not multiple data ? suggestion please ?

to execute multi-statements original code trying perhaps mysqli_multi_query best solution. does, of course, mean need create db connection using mysqli rather mysql functions/methods.

/* mysqli_multi_query example */ $data   = $_request['data']; $data   = json_decode($data, true); $query  = '';  foreach( $data $item ){      $kat= $item['kat_prod'];     $nma_prod = $item['nma_prod'];     $hrg_prod = $item['hrg_prod'];     $kat = $_post['kat'];      /* string concatenation, terminate each semi-colon */     $query .= "insert `produk` values ( '', '{$kat}', '{$nma_prod}', '{$hrg_prod}' );"; }  if( $query ) {      $exec = mysqli_multi_query( $conn, $query );      if( $exec ) {         exit( json_encode( array( 'msg' => 'data inserted successfully!') ) );     } else {         exit( json_encode( array( 'msg' => 'something went wrong!') ) );     } } else {     exit( json_encode( array( 'msg' => 'nothing insert!') ) ); } 

alternatively continue using mysql_query ( though highly discouraged these days because of sql injection ) , execute each query in first loop process array or in separate loop this.

$data = isset( $_request['data'], $_post['kat'] ) ? $_request['data'] : false;  if( $data ){     $data   = json_decode( $data, true );     $query  = array();      foreach( $data $item ){         $kat= $item['kat_prod'];         $nma_prod = $item['nma_prod'];         $hrg_prod = $item['hrg_prod'];         $kat = strip_tags( trim( $_post['kat'] ) );          $query[]="insert `produk` values ( '', '{$kat}', '{$nma_prod}', '{$hrg_prod}' );";     }      if( !empty( $query ) ) {          $msgs=array('msg'=>'multiple messages');          foreach( $query $i => $sql ){             $res = mysql_query( $sql, $conn );             $msgs[ 'stmt'.$i ]=$res ? 'data inserted successfully!' : 'something went wrong!';         }          exit( json_encode( $msgs ) );      } else {         exit( json_encode( array( 'msg' => 'nothing insert!') ) );     }     mysql_close( $conn ); } 

mysqli , it's associated methods offer better protection against sql injection when use prepared statements - there lots of articles on stackoverflow choose.


Comments

Popular posts from this blog

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -