我有这个插入语句,并且我想防止在项目值为空的行中插入
<?php
require_once 'app/helpers.php';
session_start();
$error = '';
$link = mysqli_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PWD, MYSQL_DB);
mysqli_set_charset($link,"utf8");
$id = $_SESSION['user_id'] ;
$type = $_SESSION['user_rule'];
if($_POST) {
$name = $_POST['name'];
$email = $_POST['email'];
$tel = $_POST['tel'];
$prod = $_POST['prod'];
$for = $_POST['for'];
$s_date = $_POST['s_date'];
$s_time = $_POST['s_time'];
$e_date = $_POST['e_date'];
$e_time = $_POST['e_time'];
$item1 = $_POST['itm1'];
$item2 = $_POST['itm2'];
$item3 = $_POST['itm3'];
$item4 = $_POST['itm4'];
$item5 = $_POST['itm5'];
$item6 = $_POST['itm6'];
$item7 = $_POST['itm7'];
$item8 = $_POST['itm8'];
$notes = $_POST['notes'];
if (empty($prod)) {
$error = '<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> מי מפיק את כל הכיף הזה? בבקשה לרשום </div>';
} elseif (empty($for)) {
$error = '<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> כן? למי הציוד הולך בבקשה? </div>';
} elseif (empty($s_date)) {
$error = '<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> מתי מתחיל כל הכיף הזה? </div>';
} elseif (empty($s_time)) {
$error = '<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> באיזה שעה מתחיל הכיף?</div>';
} elseif (empty($e_date)) {
$error = '<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> מתי נגמר הכאב ראש הזה?</div>';
} elseif (empty($e_time)) {
$error = '<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> באיזה שעה נגמר הכאב ראש? שנדע לקחת כדור </div>';
} else {
if (!empty($item1)) {
$rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes)
VALUES
('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item1','$type','$notes') ";
mysqli_query($link, $rent);
$error = '<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>';
}
if (!empty($item2)){
$rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes)
VALUES
('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item2','$type','$notes') ";
mysqli_query($link, $rent);
$error = '<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>';
}
if (!empty($item3)){
$rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes)
VALUES
('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item3','$type','$notes') ";
mysqli_query($link, $rent);
$error = '<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>';
}
if (!empty($item4)){
$rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes)
VALUES
('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item4','$type','$notes') ";
mysqli_query($link, $rent);
$error = '<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>';
}
if (!empty($item4)){
$rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes)
VALUES
('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item4','$type','$notes') ";
mysqli_query($link, $rent);
$error = '<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>';
}
if (!empty($item5)){
$rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes)
VALUES
('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item5','$type','$notes') ";
mysqli_query($link, $rent);
$error = '<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>';
}
if (!empty($item6)){
$rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes)
VALUES
('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item6','$type','$notes') ";
mysqli_query($link, $rent);
$error = '<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>';
}
if (!empty($item7)){
$rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes)
VALUES
('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item7','$type','$notes') ";
mysqli_query($link, $rent);
$error = '<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>';
}
if (!empty($item8)){
$rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes)
VALUES
('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item8','$type','$notes') ";
mysqli_query($link, $rent);
$error = '<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>';
}
}
}
?>
<?= $error ?>
我如何防止插入item1或item2或item3值为空的每一行?并仅插入项目值不为空的行?
我现在得到的结果是数据库表中的8行,项目列中的单元格为空
答案 0 :(得分:3)
我想您需要插入8个项目,例如详细信息,对吗?
您可以创建一个函数来在数据库中进行插入,因此在这种情况下,每次项目不为空时,您都可以调用该函数。
类似的东西...
<?php
require_once 'app/helpers.php';
session_start();
$error = '';
$link = mysqli_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PWD, MYSQL_DB);
mysqli_set_charset($link,"utf8");
$id = $_SESSION['user_id'] ;
$type = $_SESSION['user_rule'];
if($_POST){
$item1 = $_POST['itm1'];
$item2 = $_POST['itm2'];
$item3 = $_POST['itm3'];
$item4 = $_POST['itm4'];
$item5 = $_POST['itm5'];
$item6 = $_POST['itm6'];
$item7 = $_POST['itm7'];
$item8 = $_POST['itm8'];
if(empty($prod)){
$error = '<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> מי מפיק את כל הכיף הזה? בבקשה לרשום </div>';
}elseif (empty($for)){
$error = '<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> כן? למי הציוד הולך בבקשה? </div>';
}elseif (empty($s_date)){
$error = '<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> מתי מתחיל כל הכיף הזה? </div>';
}elseif (empty($s_time)){
$error = '<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> באיזה שעה מתחיל הכיף?</div>';
}elseif(empty($e_date)){
$error = '<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> מתי נגמר הכאב ראש הזה?</div>';
}elseif (empty($e_time)){
$error = '<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> באיזה שעה נגמר הכאב ראש? שנדע לקחת כדור </div>';
}else{
insertItem($item1, $_POST);
insertItem($item2, $_POST);
insertItem($item3, $_POST);
insertItem($item4, $_POST);
insertItem($item5, $_POST);
insertItem($item6, $_POST);
insertItem($item7, $_POST);
insertItem($item8, $_POST);
$error = '<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>';
}
}
?>
<?= $error ?>
<?php
function insertItem($item, $post) {
// this should prevent to insert an empty item in the database
if (!empty($item)) {
$name = $post['name'];
$email = $post['email'];
$tel = $post['tel'];
$prod = $post['prod'];
$for = $post['for'];
$s_date = $post['s_date'];
$s_time = $post['s_time'];
$e_date = $post['e_date'];
$e_time = $post['e_time'];
$notes = $_POST['notes'];
$rent = "
INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes)
VALUES
('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item','$type','$notes')";
mysqli_query($link,$rent);
}
}
顺便说一句:我想您可以像MVC那样更好地组织代码,好吧,让我知道这是否适合您
致谢!
答案 1 :(得分:-4)
尝试这样的事情:
select
t1.cid,
case
when t1.text1 = substring(t2.outcome,1,len(t1.text1))
then concat(t2.outcome,' ',t1.text2,' ',t1.text3,' ',t1.text4)
when t1.text2 = substring(t2.outcome,1,len(t1.text2))
then concat(t1.text1,' ',t2.outcome, ' ',t1.text3,' ',t1.text4)
when t1.text3 = substring(t2.outcome,1,len(t1.text3))
then concat(t1.text1,' ',t1.text2, ' ',t2.outcome,' ',t1.text4)
when t1.text4 = substring(t2.outcome,1,len(t1.text4))
then concat(t1.text1,' ',t1.text2, ' ',t1.text3,' ',t2.outcome)
else concat(t1.text1,' ',t1.text2, ' ',t1.text3,' ',t1.text4)
end
from #temp1 t1
join #temp2 t2 on t1.cid = t2.cid;