2015-12-15 42 views
0

我想問一下數組。如何防止將空數組插入數據庫?我已經使用!empty,但它仍然無法正常工作。 如果我移動防止將空數組插入數據庫。 PHP

爲($ I = 0; $ I <計數($ SPM); $ I ++)if(!empty)之前

它有錯誤。請幫忙。

<?php 
if(!empty($spm)&&$total_spm==0) 

     { 

      for ($i = 0; $i < count($spm); $i++) { 

     $spmSubjek =($spm[$i]); 
     $gredSubejek = ($gredSPM[$i]); 


     $sqlInsertSpm=OCIParse($c,$a="INSERT INTO E_PENDIDIKAN_PELAJAR 
                 (
                  DIDIK_NOMKPB, 
                  DIDIK_KOD_PERIKSA, 
                  DIDIK_GRED, 
                  DIDIK_NAMA, 
                  DIDIK_KTRGN, 
                  DIDIK_THN_DARI, 
                  DIDIK_TRKH_UPD, 
                  DIDIK_CREATED_USER, 
                  DIDIK_CREATED_DATE, 
                  DIDIK_JENIS_SEKOLAH 
                 ) 
                 VALUES 
                 (
                  '$nomkpb', 
                  '0', 
                  '$gredSubejek', 
                  '$spmSubjek', 
                  '$spmSubjek', 
                  '$year_spm_bm', 
                  to_date('".$curr_date."','dd-mm-rrrr hh:mi AM'), 
                  'IPSWEB', 
                  to_date('".$curr_date."','dd-mm-rrrr hh:mi AM'), 
                  '$jenis_sekolah' 
                 ) 
                 "); 
      OCIExecute($sqlInsertSpm); 
      OCICommit($c); 



      }} 
      ?> 

回答

0

使用foreach取而代之的是for循環。如果數組爲空,則foreach將執行內部代碼零次,即,您不必防止任何事情發生。

foreach ($spm as $i => $spmSubjek) { 
    // not needed, it is done by foreach for you $spmSubjek =($spm[$i]); 
    $gredSubejek = ($gredSPM[$i]); // still needed, but $i is taken from foreach 
    ... 
} 

更多信息的文檔中:http://php.net/manual/en/control-structures.foreach.php

+0

感謝。但是,如果我再次點擊提交按鈕。它會插入相同的數據。 – john

+0

你還沒有在你的問題中提到提交按鈕。我只能考慮我所知道的。 – Sven

+0

您的解決方案正在運行。謝謝。空數組未插入到數據庫中。 – john