2016-05-14 43 views
0

在如下因素代碼我做從形式插入到MySQL表INSERT從複選框到MySQL - foreach語句

表單域是從MySQL數據庫,其正常工作人口。

問題是從多個複選框中提取數據並將每個值作爲新行插入到同一個表的「選擇」列userid和videoid中。

userid字段被正確插入,但videoid沒有發佈任何數據。

 <?php 
    $con=mysqli_connect("$host", "$username",   "$password","$db_name")or die("cannot connect");//connection string 
    $user=$_POST['userid']; 
    $checkbox1=$_POST['videoid']; 
    $chk=""; 

    foreach($checkbox1 as $chk1) 
     { 
      $chk .= $chk1.","; 
     } 
    $in_ch=mysqli_query($con,"INSERT INTO tbl_selection (userid, videoid) VALUES ('$user', '$chk');"); 
    if($in_ch==1) 
     { 
      echo'<script>alert("Inserted Successfully")</script>'; 
     } 
    else 
     { 
      echo'<script>alert("Failed To Insert")</script>'; 
     } 
    } 
    ?> 
    </body> 
    </html> 

這是從一個MySQL表填充的HTML形式:

<?php 
    connect to database 
    ?> 
    <div class="control-group"> 
    <?php 
    $query = "SELECT * FROM video"; 
    $result2 = mysql_query($query); 
    while ($line = mysql_fetch_array($result2, MYSQL_ASSOC)) { 
    ?> 
    <div class="controls"> 
     <label class="checkbox"> 
      <input type="checkbox" name="videoid" value="<?php echo $line[id]?>"><?php echo $line[title]?> 
     </label> 
     </div> 
     <?php } ?> 
+1

切勿使用[了'mysql_'數據庫擴展(http://stackoverflow.com/questions/12859942/why它不支持(在PHP7中永遠不會使用) 特別是如果您只是學習PHP,花費精力學習'PDO'數據庫擴展。 [從這裏開始](http://php.net/manual/en/book.pdo.php) – RiggsFolly

+0

您只需要連接到每個腳本的ONCE數據庫。這是一個相當耗時的過程 – RiggsFolly

+0

...或mysqli_如果您必須是舊的skool – Strawberry

回答

0

1)變化

<input type="checkbox" name="videoid" value="<?php echo $line[id]?>"><?php echo $line['title']?> 

<input type="checkbox" name="videoid[]" value="<?php echo $line[id]?>"><?php echo $line['title']?> 

平均數s,多個複選框。使用name作爲array類型。像videoid[]

2)使用forforeach將多個複選框值插入表中的循環。首先,通過sizeof找出選中的複選框。然後,相應地使用。

更新的代碼

<?php 
$con=mysqli_connect("$host", "$username","$password","$db_name")or die("cannot connect"); 
$user=$_POST['userid']; 
$videoCheckBox=$_POST['videoid']; 

$checkedVideo = sizeof($videoCheckBox); 

for($i=0;$i<$checkedVideo;$i++) { 
    $videoId = $videoCheckBox[$i]; 
    $queryVideo = mysqli_query($con,"INSERT INTO `tbl_selection` (`userid`, `videoid`) VALUES ('$user', '$videoId');"); 
} 

if($checkedVideo == 0) { 
    echo'<script>alert("Failed To Insert")</script>'; 
} elseif($queryVideo) { 
    echo'<script>alert("Inserted Successfully")</script>'; 
} 

?> 
</body> 
</html> 


<div class="control-group"> 
    <?php 
    $query = "SELECT * FROM video"; 
    $result2 = mysql_query($query); 
    while ($line = mysql_fetch_array($result2, MYSQL_ASSOC)) { 
    ?> 
    <div class="controls"> 
     <label class="checkbox"> 
      <input type="checkbox" name="videoid[]" value="<?php echo $line['id']?>"><?php echo $line['title']?> 
     </label> 
    </div> 
    <?php } ?> 

欲瞭解更多信息,請點擊Inserting data into mySQL table from mutlidimensional input form