如果POST值不为空,则PHP foreach循环

时间:2012-11-30 12:34:09

标签: php post foreach null

我有PHP loop

foreach($_POST['af_break_date'] as $id=>$value) {
    $update_break_date_query = "UPDATE studentdates SET student_break_date = '$value' WHERE student_date_id = '$id';";
    $update_break_date_sql = mysql_query($update_break_date_query) or die(mysql_error());
}

我希望仅在每个$update_break_date_sql 为空时才运行$_POST['af_break_date']

如何做到这一点?

6 个答案:

答案 0 :(得分:3)

foreach($_POST['af_break_date'] as $id=>$value)
{
    if($value != '')
    {
        $update_break_date_query = "UPDATE studentdates SET student_break_date = '$value' WHERE student_date_id = '$id';";
        $update_break_date_sql = mysql_query($update_break_date_query) or die(mysql_error());
    }
 }

不要忘记保护SQL注入,因为您要向查询添加原始用户输入。看看PDO或MySQLi和参数化查询。

答案 1 :(得分:1)

使用isset

if(isset($_POST['af_break_date'] && 
strlen(implode("",$_POST['af_break_date']))>0)
{
....
...
}

答案 2 :(得分:0)

if( isset( $_POST['af_break_date'] ) && is_array(  $_POST['af_break_date'] )) {
    foreach($_POST['af_break_date'] as $id=>$value) {
        $update_break_date_query = "UPDATE studentdates SET student_break_date = '$value' WHERE student_date_id = '$id';";
        $update_break_date_sql = mysql_query($update_break_date_query) or die(mysql_error());
    }
}

答案 3 :(得分:0)

使用!empty();

例如

$ value = false;

isset($value); //return true
!empty($value); //return false

答案 4 :(得分:0)

只需添加条件即可查看&避免空值

if($_POST['af_break_date']){
    foreach($_POST['af_break_date'] as $id=>$value) {
      if(!$value) continue;
      $update_break_date_query = "UPDATE studentdates SET student_break_date = '$value' WHERE student_date_id = '$id';";
      $update_break_date_sql = mysql_query($update_break_date_query) or die(mysql_error());
    }
}

不要使用mysql_*函数,它们很快就会被弃用。而是使用mysqli或PDO连接数据库。使用预准备语句来避免SQL注入,然后在将数据更新到数据库之前进行验证。

答案 5 :(得分:0)

isset的替代方法是空的,它将检查数组是否为空,因此,由于它总是被发布,我们在运行foreach循环之前检查它是否为空。

if (!empty($_POST['af_break_date']) && is_array($_POST['af_break_date'])) {
    foreach($_POST['af_break_date'] as $id=>$value) {
        $update_break_date_sql = mysql_query("UPDATE studentdates SET student_break_date = '$value' WHERE student_date_id = '$id'") or die(mysql_error());
    }
}