2015-07-13 64 views
1

您好,我有一個名爲tables的表,其中包含9個字段(id,第一,第二,第三,第四,第五,第六,第七,第八),如果所有這些字段不是空的,我想將它作爲新記錄插入同一張表中。這是我的代碼現在:檢查字段是否完整並插入新數據

$db = new db(); 
     $bind = array(
     ":tid" => "1" 
     ); 
     $results = $db->select("tables", "tableID = :tid", $bind); 
      foreach ($results as $r) { 
       $tableID = $r['id']; 
       $l1_1 = $r['first']; 
       $l1_2 = $r['second']; 
       $l1_3 = $r['third']; 
       $l1_4 = $r['fourth']; 
       $l1_5 = $r['fifth']; 
       $l1_6 = $r['sixth']; 
       $l1_7 = $r['seventh']; 
       $l1_8 = $r['eight']; 
      } 
if($l1_1 != "" AND $l1_2 != "" AND $l1_3 != "" AND $l1_4 != "" AND $l1_5 != "" AND $l1_6 != "" AND $l1_7 != "" AND $l1_8 != "") 
{ 
$db->insert("tables", array(
      "first" => $l1_1, 
      "second" => $l1_2, 
      "third" => $l1_3, 
      "fourth" => $l1_4, 
     )); 

     //insert 2nd record 
$db->insert("tables", array(
      "first" => $l1_5, 
      "second" => $l1_6, 
      "third" => $l1_7, 
      "fourth" => $l1_8, 
     )); 
} 

我也有很長的代碼,它用來做什麼的總結是檢查是否字段爲空,並插入數據在那裏,直到所有的領域都充滿。當輸入最後的數據時,上面的代碼將執行。輸入最後一個數據時,它將執行上面的代碼,檢查所有字段是否爲空並插入新數據。此代碼有效,但插入的新記錄中插入的最後一個數據顯示爲空白。

我知道我的解釋是模糊的,但請問我想知道什麼。

+0

不應該//插入第二個記錄$ DB->插入( 「表」,陣列( 「十五」=> $ l1_5, 「six」=> $ l1_6,「seven」=> $ l1_7,「eight」=> $ l1_8,)); ? – antonioduarte

+0

爲什麼你會在數據庫中有一個空行?您可以檢查查詢中的字段是否爲空。 – 2015-07-13 03:31:06

回答

2

我相信你的答案在於你的If語句。您正在檢查字段是「」還是空白。這是不正確的,因爲它們可能在數據庫中爲NULL。這裏有一個答案,解釋瞭如何解決它。

Better way to check variable for null or empty string?

更改您的代碼如下:

if(isset($l1_1) && trim(($l1_1) != '' 
AND isset($l1_2) && trim(($l1_2) != '' 
AND isset($l1_3) && trim(($l1_3) != '' 
AND isset($l1_4) && trim(($l1_4) != '' 
AND isset($l1_5) && trim(($l1_5) != '' 
AND isset($l1_6) && trim(($l1_6) != '' 
AND isset($l1_7) && trim(($l1_7) != '' 
AND isset($l1_8) && trim(($l1_8) != '') 
相關問題