使用If语句在插入时使用PHP消除MySQL中的空行和列

开发技术 作者: 2024-07-02 03:25:01
我正在使用 PHP从表单中插入日期.我有24个字段,用户可以在其中将数据插入数据库.问题是我怎么不允许空字段成为MySQL中的行,因为它们是空的?不需要任何字段,字段被格式化为输入文本字段.我被考虑使用的是在查询后的值部分中的if语句;这是一个例子: /************** * HTML Form **************/ <form action='insert.php' meth
我正在使用 PHP从表单中插入日期.我有24个字段,用户可以在其中将数据插入数据库.问题是我怎么不允许空字段成为MysqL中的行,因为它们是空的?不需要任何字段,字段被格式化为输入文本字段.我被考虑使用的是在查询后的值部分中的if语句;这是一个例子:

/**************
* HTML Form
**************/
<form action='insert.PHP' method='post'>

<p> What items do you have for sale?</p>

Item 1: <input type='text' name='item1'> Price: <input type='text' name='item1cost'>
Item 2: <input type='text' name='item2'> Price: <input type='text' name='item2cost'>
Item 3: <input type='text' name='item3'> Price: <input type='text' name='item3cost'>

<input type="submit" name="Submit" value="Submit">
</form>


/**************
* PHP
**************/

$user = (from $_SESSION)
$item1      = $_POST['item1'];
$item1cost  = $_POST['item1cost'];
$item2      = $_POST['item2'];
$item2cost  = $_POST['item2cost'];
$item3      = $_POST['item3'];
$item3cost  = $_POST['item3cost'];


/*********************
* MysqL INSERT query
*********************/

$query = "INSERT INTO monthly_expenses (`userid`,`item`,`amount`)" 
                                   . "VALUES ($user,'$item1','$item1cost'),($user,'$item2','$item2cost'),'$item3','$item3cost'),

如果用户将其中一个字段留空,我怎么能让它们不插入到数据库中,所以不存在只有userid的空行?

解决方法

您可以将值放入数组,然后检查它们是否为空(可能会建议其他一些检查有关安全问题)并创建$values变量,您可以将其加载到数据库中.

$item[0]      = MysqL_real_escape_string(trim($_POST['item1']));
$itemcost[0]  = MysqL_real_escape_string(trim($_POST['item1cost']));
$item[1]      = MysqL_real_escape_string(trim($_POST['item2']));
$itemcost[1]  = MysqL_real_escape_string(trim($_POST['item2cost']));
// and so on

$values = "";
for ($i = 0; $i < 2; ++$i) {
    if ($item[$i] != "" && $itemcost[$i] != "") {
        $values .= "($user,'$item[$i]','$itemcost[$i]'),";
    }
}

/*********************
* MysqL INSERT query
*********************/

if ($values != "") {
  $values = substr($values,-1);
  $query = "INSERT INTO monthly_expenses (`userid`,`amount`)" 
                                   . " VALUES $values";
}

也可以将HTML输入字段名称作为item []之类的数组,并将它们直接解析为PHP-arrays.

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_37069.html