加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 16:48:44 所属栏目:PHP教程 来源:网络整理
导读:我正在使用 PHP从表单中插入日期.我有24个字段,用户可以在其中将数据插入数据库.问题是我怎么不允许空字段成为MySQL中的行,因为它们是空的?不需要任何字段,字段被格式化为输入文本字段.我被考虑使用的是在查询后的值部分中的if语句;这是一个例子: /*******
我正在使用 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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读