html多个输入字段

时间:2014-03-07 13:36:56

标签: php html mysql input

我正在为我的工作室创建一个新的工作表程序表单。我有一个工作表工作需要表格,有4个字段输入。这些名为work1,work2,work3和work4。它需要这些并写入数据库表jobcardwork。这有两个领域,即作业卡和工作。我希望它只在字段不为空时写入,因为可能并非所有3行都有文本。我的代码是这样的。

$a = array($work1, $work2, $work3, $work4); 

 foreach ($a as $b) 

 { 

 $sql6 = "INSERT INTO jobcardwork (Jobcard,Work)VALUES('2','$b')";
 $result6=mysql_query($sql6); 

 }

这样可行,但即使包装盒中没有任何内容也会写入。结果是。

id      jobcard   work
14      2    
15      2         linda
16      2         dan

正如你所看到的,它写了第一行并输入了作业卡号,但是框中没有文字,所以它留下了这个空值。请帮忙。谢谢。 p.s我知道mysql已经老了,但我开始在mysqli和PDO之前编写它。遗憾。

3 个答案:

答案 0 :(得分:0)

您的代码可以更加优化并且编写得更安全,但这不是此问题的主题,因此您的快速修复将如下所示:

$a = array($work1, $work2, $work3, $work4); 
foreach ($a as $b) { 
  if($b!="") {
     $sql6 = "INSERT INTO jobcardwork (Jobcard,Work)VALUES('2','$b')";
     $result6=mysql_query($sql6); 
  }
}

答案 1 :(得分:0)

正确的方法是删除多余的空格,摆脱SQL攻击,然后检查文本是否仍为空。

检查 mysql_real_escape_string 修剪方法。最终代码将如下所示。

 $result = array();
 foreach ($a as $b) 
 { 
    $b = mysql_real_escape_string(trim($b));

    if($b != '')
    {
        $sql = "INSERT INTO jobcardwork (Jobcard,Work)VALUES('2','$b')";
        $result[] = mysql_query($sql); 
    }

 }
 var_dump($result);

答案 2 :(得分:0)

没有iffing的解决方案:

$a = array($work1, $work2, $work3, $work4); 
foreach (array_filter($a) as $b) { 
   $sql6 = "INSERT INTO jobcardwork (Jobcard,Work)VALUES('2','$b')";
   $result6=mysql_query($sql6); 
}

请参阅http://lt1.php.net/array_filter