2016-08-03 4 views
-2

私と同じ問題を検索して解決策が見つからないので、ここで質問しました。PHPメソッドポストはデータベースにデータを格納することができません。エラーは生成されません

私は1つのテーブルに2つのテーブルがあり、1つは "プロダクト"で、もう1つは "スペアパーツ"で、カラムと同じ番号とカラム名を持っています。

HTMLとPHPの全く同じコードを書きましたが、データがそれぞれのテーブルに格納されるようにテーブル名を変更しました。

問題は、produk.phpからのデータは、produkテーブルに格納されていますが、sparepart.phpからのデータは、クエリ後にsparepartテーブルに格納されません。

私はエラーをチェックしようとしましたが、エラーは生成されず、代わりに「成功」​​をエコーし​​ます。

私の単純化されたコードを見て取りください

HTML

<?php echo "<header><h3>TAMBAHKAN PRODUK SPAREPART</h3></header> 
    <form method=POST action='$aksi?module=sparepart&act=input' enctype='multipart/form-data'> 
    <div class='module_content'> 
     <table id='rounded-corner'> 
     <tr> 
      <td width=70>Nama Produk</td>  
      <td> : <input type=text name='nama_produk' size=60></td> 
     </tr> 
     <tr> 
      <td>Kategori</td> 
      <td> : 
      <select name='kategori'> 
       <option value=0 selected>- Pilih Kategori -</option>"; 
       $tampil=mysql_query("SELECT * FROM kategori ORDER BY nama_kategori"); 
       while($r=mysql_fetch_array($tampil)){ 
       echo "<option value=$r[id_kategori]>$r[nama_kategori]</option>"; 
       } 

      echo "</select> 
      </td> 
     </tr> 
     <tr> 
      <td>Kategori 2</td> 
      <td> : 
      <select name='kategori2'> 
       <option value=0 selected>- Pilih Kategori2 -</option>"; 
       $tampil2=mysql_query("SELECT * FROM kategori2 ORDER BY nama_kategori2"); 
       while($r2=mysql_fetch_array($tampil2)){ 
       echo "<option value=$r2[id_kategori2]>$r2[nama_kategori2]</option>"; 
       } 
      echo "</select> 
      </td> 
     </tr> 
     <tr> 
      <td>Harga </td>  
      <td> : <input type=text name='harga' size=10></td> 
     </tr> 
     <tr> 
      <td>Stok</td>  
      <td> : <input type=text name='stok' size=5></td> 
     </tr> 
     <tr> 
      <td>Diskon</td>  
      <td> : <input type=text name='diskon' size=5></td> 
     </tr> 
     <tr> 
      <td>Potongan</td>  
      <td> : <input type=tetxt name='potongan' size=10></td> 
     </tr> 
     <tr> 
      <td valign=top>Deskripsi</td> 
      <td> <textarea name='deskripsi' style='width: 600px; height: 350px;'></textarea></td> 
     </tr> 
     <tr> 
      <td>Gambar</td>  
      <td> : <input type=file name='fupload' size=40> 
       <br>Tipe gambar disarankan JPG/JPEG dan ukuran lebar maks: 400 px 
      </td> 
     </tr> 
     <tr> 
      <td colspan=2> 
      <input type=submit class='button' value=Simpan> 
      <input type=button class='button' value=Batal onclick=self.history.back()> 
      </td> 
     </tr> 
     </table> 
    </form>";?> 

PHP:私が知りたい

<?php 
$module=$_GET[module]; 
$act=$_GET[act]; 

$produk_seo = seo_title($_POST['nama_produk']); 

if (!empty($lokasi_file)){ 
    // Cek file type 
    if (($tipe_file =="image/jpeg" OR $tipe_file=="image/gif" OR 
     $tipe_file=="image/png" OR $tipe_file=="image/wbmp")){ 
      UploadImage($nama_file_unik); 
      $query1 ="INSERT INTO sparepart(nama_produk, 
           produk_seo, 
           id_kategori, 
           id_kategori2, 
           berat, 
           harga, 
           diskon, 
           stok, 
           deskripsi, 
           tgl_masuk, 
           potongan, 
           gambar) 
         VALUES('$_POST[nama_produk]', 
           '$produk_seo', 
           '$_POST[kategori]', 
           '$_POST[kategori2]', 
           '$_POST[berat]', 
           '$_POST[harga]', 
           '$_POST[diskon]', 
           '$_POST[stok]', 
           '$_POST[deskripsi]', 
           '$tgl_sekarang', 
           '$_POST[potongan]', 
           '$nama_file_unik')"; 
     $sql = mysql_query($query1); 
     if (!sql) { 
      die('there is an error'); 
      mysql_errno($sql).":".mysql_error($sql); 
     } else { 
      echo "success bro!"; 
     } 
    } 
    else 
    { 
     $query2 = "INSERT INTO sparepart(nama_produk, 
           produk_seo, 
           id_kategori, 
           id_kategori2, 
           berat, 
           harga, 
           diskon 
           stok, 
           deskripsi, 
           potongan, 
           tgl_posting) 
         VALUES('$_POST[nama_produk]', 
           '$produk_seo', 
           '$_POST[kategori]', 
           '$_POST[kategori2]', 
           '$_POST[berat]',         
           '$_POST[harga]', 
           '$_POST[diskon]', 
           '$_POST[stok]', 
           '$_POST[deskripsi]', 
           '$_POST[potongan]', 
           '$tgl_sekarang')"; 
     $sql=mysql_query($query2); 
     if(!sql) { 
      die('there is an error'); 
      mysql_errno($sql).":".mysql_error($sql); 
     } else { 
      echo "success bro!"; 
     } 
} 

をなぜ2と同じコード間、1つだけが動作し、もう一方はエラーをエコーし​​ませんが、動作しません。

実際のプロジェクトではmysqli_ *を使用しています。この質問を書いたときにMysql_ *を使うのがより快適だと感じましたので、mysql_ *の使用を推奨してくれてありがとうございます。

+1

mysql_queryの使用を中止すると、廃止予定です。さらに、あなたのクエリはSQLインジェクションに対して脆弱です。それをパラメータ化する。 – Gogol

+2

実際にこのコードは私にクリープを与えます:S – Gogol

+0

[mysql_'データベース拡張]を使用しないでください(http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in- php)、 は廃止されました(PHP7ではこれまでになくなりました)特にPHPを習得している場合は、 'PDO'データベースの拡張機能を学ぶことができます。 [こちらから](http://php.net/manual/en/book.pdo.php)その非常に簡単 – RiggsFolly

答えて

1

最後にdie()メソッドを使用すると、エラーが表示されません。 POSTで''を使用する - :

if (!sql) { 
    /* die('there is an error'); */ // was like this before 
    echo mysql_errno($sql).":".mysql_error($sql); 
    die('there is an error'); // make it like this 
} 
+0

これ以上は表示されませんが、mysqlエラー関数は結果をエコーし​​ません。 –

+0

もエコーはありません..:D updated ..;) –

1
$a=$_POST['kategori']; 
$b=$_POST['kategori2']; 

$query=mysql_query("INSERT INTO sparepart VALUES('$a','$b')"); 

if(!query) 
{ 
     die('there is an error'); 

} 
else 
{ 
     echo "success bro!"; 
} 

は、このノートのような何かを行います。

関連する問題