我有2个相关表
一个是 claim_item_category
|---------------------|------------------|
| claim_item_id | claim_item_name |
|---------------------|------------------|
| 1 | Transport |
|---------------------|------------------|
| 2 | Medical |
|---------------------|------------------|
第二个是 claim_list
|---------------------|------------------|------------------|
| claim_list_id | claim_item_id | Amount |
|---------------------|------------------|------------------|
| 1 | 1 | 20.50 |
|---------------------|------------------|------------------|
用户有一个选择框可以选择声明项
<select name="claim_item_id" class="form-control" required="required" aria-required="true">
<option value="" selected="SELECTED">...</option>
<option value="1">Transport</option>
<option value="2">Medical</option>
</select>
如果他们检查代码,将选项值更改为3(在claim_item_category表中不存在),它也会保存到数据库中,然后输出将为空白。
可以检查 claim_item_category - claim_item_id 已经存在然后才保存?
我的插入sql查询:
sprintf("INSERT INTO `claim_list`
(`claim_item_id`,`Amount`)
VALUES
('%d','%s');"
,$this->claim_category_id,$this->claim_amount);
更新
我已经添加了两个表的外键,所以如果不退出claim_item_id则无法插入或更新。 解决了问题,谢谢
答案 0 :(得分:0)
例如,如果你有3个SELECTOR BOX。
$id=[];
if(isset($_POST['claim_item_id1']&& !empty(($_POST['claim_item_id1'])){
$id[]=$_POST['claim_item_id1'];
}
if(isset($_POST['claim_item_id2']&& !empty(($_POST['claim_item_id2'])){
$id[]=$_POST['claim_item_id2'];
}
if(isset($_POST['claim_item_id3']&& !empty(($_POST['claim_item_id3'])){
$id[]=$_POST['claim_item_id3'];
}
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
foreach($id as $idnum){
$result=$mysqli->query("select * from claim_item_category where claim_item_id = '".$idnum."'");
$rows=$result->num_rows;
if($rows >0){
//insert your query here
}
}
如果您有n个选择框,则使用n个选择框
答案 1 :(得分:0)
$mysqli = new mysqli("localhost", "root", "", "databse");
if(isset($_POST['claim_item_id1']&& !empty(($_POST['claim_item_id1'])){
$id=$_POST['claim_item_id1'];
$result=$mysqli->query("select * from claim_item_category1 where claim_item_id = '".$id."'");
$rows=$result->num_rows;
if($rows >0){
//insert your query here
}
}
if(isset($_POST['claim_item_id2']&& !empty(($_POST['claim_item_id2'])){
$id=$_POST['claim_item_id2'];
$result=$mysqli->query("select * from claim_item_category2 where claim_item_id = '".$id."'");
$rows=$result->num_rows;
if($rows >0){
//insert your query here
}
}
if(isset($_POST['claim_item_id3']&& !empty(($_POST['claim_item_id3'])){
$id=$_POST['claim_item_id3'];
$result=$mysqli->query("select * from claim_item_category3 where claim_item_id = '".$id."'");
$rows=$result->num_rows;
if($rows >0){
//insert your query here
}
}
答案 2 :(得分:-1)
$data = $mysqli-query("select count(claim_item_id) from claim_item_category where claim_item_id = " . $_POST['claim_item_id'] . ");
if($data) {
sprintf("INSERT INTO `claim_list`
(`claim_item_id`,`Amount`)
VALUES
('%d','%s');"
,$this->claim_category_id,$this->claim_amount);
} else {
echo 'Claim category not exist.';
}
答案 3 :(得分:-1)
试试这个
$id=$_POST['claim_item_id'];
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$result=$mysqli-query("select * from claim_item_category where claim_item_id = '".$id."'");
$rows=$mysqli->num_rows;
if($rows >0){
//insert your query here
}