2017-05-25 111 views
1
<tr> 
<td><label style="padding-top:10px"> flower </label></td> 
<td><input type="checkbox" name="pol[]" value="lili"/> lili 
<input type="checkbox" name="pol[]" value="tulip"/> tulip 
<input type="checkbox" name="pol[]" value="rose"/> rose</td> 
</tr> 
<input class="btn btn-success" name="submit" value="Submit" type="submit"> 

我有这样的输入和PHP代码这样如何从复选框插入多个值和在MySQL插入

 $id = $_POST['id']; 
     $pol = implode(",",$_POST['pol']); 

     $query ="INSERT INTO data_rs (id_rs) values ('$id')"; 
     $eksekusi=mysql_query($query); 

     if(isset($_POST['pol'])) 
     { 
      include ('inc/konek.php'); 
      $sql ="INSERT INTO rs_fl(id_rs,id_fl) VALUES ((SELECT id_rs FROM 
data_rs WHERE id_rs ='$id'), 
      (SELECT id_fl FROM poliklinik WHERE Flower ='$pol'))"; 
      $ek = mysql_query($sql); 
     } 
     else 
     { 
      echo "<script> alert ('please insert data !'); window.history.back()</script>"; 
    } 

和我有3个表“data_rs”,“poliklinik”,'rs_fl “他们每个人都包含

data_rs    poliklinik      rs_fl  
id_rs name   id_fl  Flower   id(AI) id_rs id_fl 
r01  type41   f01  lili   
          f02  tulip 
          f03  rose 

的结果,我想,当我从复选框选中列表中的多个值是我的表rs_fl是这样相同的值id_rs有diferent值id_fl

data_rs    poliklinik      rs_fl  
id_rs name   id_fl  Flower   id(AI) id_rs id_fl 
r01  type41   f01  lili    1  r01  f01 
          f02  tulip   2  r01  f02 
          f03  rose    3  r01  f03 

,但我不知道我什么时候选择复选框,如果只是1值从poliklinikrs_fl可以显示,但是当我从复选框表中选择多个值rs_fl是empty.sorry我的英文不好,并仍然使用MySQL的,这是老program.thnx

+0

PHP的mysql_ API已被废弃很久以前 – Strawberry

+0

@Strawberry如果你看过他/她的职位,你会知道他/她已经意识到 – RST

+0

@首先不幸,只要我打到,我停止阅读 – Strawberry

回答

0
$id = $_POST['id']; 
    $pol = implode(",",$_POST['pol']); 

测试,如果它被设置 的$pol变量可以容纳一个或许多花之前,您正在使用$ _ POST [“POL”]。

$query ="INSERT INTO data_rs (id_rs) values ('$id')"; 
    $eksekusi=mysql_query($query); 

    if(isset($_POST['pol'])) 
    { 
     include ('inc/konek.php'); 
      $sql ="INSERT INTO rs_fl(id_rs,id_fl) VALUES ((SELECT id_rs FROM 
data_rs WHERE id_rs ='$id'), 

您选择了Flower = '$pol',但万一$ POL持有多花您正在寻找像花=“丽丽玫瑰”。没有花这个名字

(SELECT id_fl FROM poliklinik WHERE Flower ='$pol'))"; 
    $ek = mysql_query($sql); 
} 
else 
{ 
    echo "<script> alert ('please insert data !'); window.history.back()</script>"; 

}

有可以做,以提高你的代码,但你应该做最少的事情是测试了很多与否$ _POST [“POL” ]被设置,并且如果它有多个值。如果是这样,你应该使用WHERE Flower in ($pol values go here)

 $id = $_POST['id']; 
     $multiple = false; 
     $pol = ''; 

     if (isset($_POST['pol'])) { 
      $pol = implode('", "', $_POST['pol']); 
      if (count($_POST['pol']) > 1) 
      $multiple = true; 
     } 
     $query ="INSERT INTO data_rs (id_rs) values ('$id')"; 
     $eksekusi=mysql_query($query); 

     if (! empty($pol)) 
     { 
      include ('inc/konek.php'); 
      if ($multiple) 
       $flower = "='". $pol . "'"; 
      else 
       $flower = 'IN ("' . $flower .'")'; 

       $sql ="INSERT INTO rs_fl(id_rs,id_fl) VALUES ((SELECT id_rs FROM 
    data_rs WHERE id_rs ='$id'), 
       (SELECT id_fl FROM poliklinik WHERE Flower $flower))"; 
       $ek = mysql_query($sql); 
      } 
      else 
      { 
       echo "<script> alert ('please insert data !'); window.history.back()</script>"; 
     } 

未测试所以它仍然可能需要一些微调