使用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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |