2017-05-25 63 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>"; 
     } 

未測試所以它仍然可能需要一些微調