2013-06-13 96 views
0

我是新來的PHP。我學會了如何從文本框中插入數據,但是現在當我必須從複選框中獲取數據時,我面臨着一個問題。我檢查了其他帖子,但他們要麼太高級,他們大多數使用MySQL而不是mysqli。簡單的複選框插入數據庫使用mysqli php

我 - >>兩個複選框和一個提交按鈕

我想插入的複選框的值到數據庫中,選擇的(一個或兩個)時。

感謝

HTML表單代碼:

<html> 
<head> 

<title>Insert Data</title> 
</head> 

<body> 
<h1> check box testing </h1> 


<form name="form1" method="post" action="checkbox_test.php" > 
<fieldset> 
<legend> Checkbox Trial </legend> 

<h3> Subject selection </h3> 
<input type="checkbox" name="PHP" value="php" id="cbsubp1"/> PHP 


<br/> 
<input type="checkbox" name="ASP" value="course[]" id="cbsub2"/> ASP.NET 
<br/> 
<input type="submit" value="submit" id="submit"/> 

</fieldset> 


</form> 

</body> 
</html> 

和PHP代碼是

<html> 
<head> 

<title>Insert Data</title> 
</head> 

<body> 
<h1> check box testing </h1> 

<?php 
$con=mysqli_connect("localhost","root","","chkbox"); 
//check connection 
if(mysqli_connect_errno()) 
{ 
    echo "Cannot connect to mySQL:".mysqli_connect_error(); 
} 
else 
{ 
    echo "Connected to mySQL succesfully"; 
} 

$query= "INSERT into sub(Subject1) VALUES('$_POST[php]')"; 
if (!mysqli_query($con,$query)) 
    { 
    die('Error: ' . mysqli_error($con)); 
    } 
echo "record added"; 
?> 
</body> 
</html> 
+0

$查詢= 「INSERT成子(Subject1)VALUES( '{$ _ POST [' PHP ']}')」; –

+0

利用GET,POST或COOKIE值之前,您應該檢查所有腦幹:'如果(isset($ _ POST [「PHP」]))'或你會得到一個「未定義指數」通知 –

+0

不要忘記在旅途中學習準備好的查詢和驗證。 –

回答

0

的信息:

如果未選中該複選框在表單上,​​該字段不在posts數組中發送。 即實際的字段名$ _POST ['PHP']將不存在。

你需要將你的代碼改成這樣的東西。

$subject1 = isset($_POST['php']) ? mysqli_real_escape_string($_POST['php']) : 'DEFAULT_VALUE'; 

$query = "INSERT into sub(Subject1) VALUES('$subject1')"; 
$result = mysqli_query($query); 
if ($result) { 
    echo 'Record Added'; 
} else { 
    die('Error: ' . mysqli_error($con)); 
} 

如果沒有被用戶選擇的複選框,這將插入複選框場的任意值或默認值。

+0

非常感謝每一個誰幫助,並非常感謝給@RiggsFolly –

+0

你定的代碼運行良好,並與一個複選框的工作,你學會以同樣的方式... :) –

相關問題