2017-07-08 136 views
1

讓我首先說我google了這個並嘗試了不同的東西,但我仍然卡住,需要一些幫助,因爲這是我第一次嘗試用php複選框... 我有一個部分我的HTML文件,如下所示如何將複選框中的值添加到數據庫

<label class="labelStyle" for="text">XXX:</label> 
         <div class="checkboxAlign"> 
          <input type="checkbox" name="XX[]" value="Apple">Apple<br> 
          <input type="checkbox" name="XX[]" value="Orange">Orange<br> 
          <input type="checkbox" name="XX[]" value="Strawberry">Strawberry<br> 
         </div> 

但我有它的PHP部分的麻煩,因爲它是不加檢查的項目,我的數據庫。

試試這個

if (!empty($_POST['XX'])) 
{ 
    foreach($_POST['XX'] as $check) 
    { 
     if(!($stmt = $mysqli->prepare("INSERT INTO table 
      id = (
       SELECT id 
       FROM yy 
       WHERE xx = ?)"))){ 
      echo "Prepare failed: " . $stmt->errno . " " . $stmt->error; 
     } 
     if(!($stmt->bind_param("s", $_POST['XX']))) { 
     echo "Bind failed: " . $stmt->errno . " " . $stmt->error; 
    } 

    } 
} 

我知道這個問題是這樣的PHP代碼片段中,但我不知道我做錯了。任何幫助,將不勝感激。

謝謝!

+0

'WHERE FoodTriggerItem =?'是語法 – colburton

+0

@colburton我想,太 – rose

+0

@rose試試我的回答 –

回答

2

試試這個

if (!empty($_POST['XX'])) 
{ 
    foreach($_POST['XX'] as $check) 
    { 
     if(!($stmt = $mysqli->prepare("INSERT INTO table 
      id = (
       SELECT id 
       FROM yy 
       WHERE xx = ?)"))){ //added ? in place of $check 
      echo "Prepare failed: " . $stmt->errno . " " . $stmt->error; 
     } 
     if(!($stmt->bind_param("s", $check))) { // added $check in place of $_POST['XX'] 
      echo "Bind failed: " . $stmt->errno . " " . $stmt->error; 
     } 


    } 
} 
+0

其實這個工程!我剛剛忘了添加一些東西...謝謝! – rose

1

變化

if(!($stmt->bind_param("s", $_POST['FoodTriggerItem']))) { 
        echo "Bind failed: " . $stmt->errno . " " . $stmt->error; 
       } 

TO

if(!($stmt->bind_param("s", $check))) { 
        echo "Bind failed: " . $stmt->errno . " " . $stmt->error; 
       } 
相關問題