根据输入条目插入第n行

时间:2017-01-09 10:05:22

标签: javascript php mysql sql mysqli

以下代码运行良好:

<?php
if(isset($_POST['add_bscint'])) {
    $req_field = array('bsc_id','int_no');
    validate_fields($req_field);
    $bsc_id = remove_junk($db->escape($_POST['bsc_id']));
    $intno = remove_junk($db->escape($_POST['int_no']));

    if(empty($errors)) {
        $sql  = "INSERT INTO bsc_int (bsc_id,bscint_no)";
        $sql .= " VALUES ('{$bsc_id}','{$intno}')";
    } else {
        $session->msg("d", $errors);
        redirect('bsc_int.php',false);
    }
}
?>

我想根据$_POST['int_no']中的值条目添加一行,而不是添加单行。

因此,如果输入条目为5,则会插入5行,编号为int.1 .. int.5,如下所示:

bsc_id    intno
name1     int.1
name1     int.2
name1     int.3
name1     int.4
name1     int.5

我该怎么做?

1 个答案:

答案 0 :(得分:0)

使用for循环循环,直到达到输入的整数。

这样的事情: -

<?php
if(isset($_POST['add_bscint']))
{
    $req_field = array('bsc_id','int_no');
    validate_fields($req_field);
    $bsc_id = remove_junk($db->escape($_POST['bsc_id']));
    $intno = (int)$_POST['int_no'];

    for($icnt = 1; $icnt <= $intno; $icnt++)
    {
        $insert_array[] = "('$bsc_id','$icnt')";
    }


    if(empty($errors))
    {
        $sql  = "INSERT INTO bsc_int (bsc_id,bscint_no)";
        $sql .= " VALUES ".implode(",", $insert_array)."";
    } 
    else 
    {
        $session->msg("d", $errors);
        redirect('bsc_int.php',false);
    }
}
?>

但是您可能需要检查输入的数字是否合理(如果处理大数字,可能需要进行多次插入而不是将它们全部合并为一个)