在插入数据库

时间:2015-11-04 07:17:20

标签: php mysql

我有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则无法插入或更新。 解决了问题,谢谢

4 个答案:

答案 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
}