我已更新我的代碼。除了當我一次選擇更多選擇框時,它正在工作。如果我選擇例如2個選擇框同時更新它們,數據庫更新它們都爲0.當我分別更新它們時,一切都很順利。保存mysql數據庫中的複選框
這個代碼現在:
<?php
include "header.php";
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['aan']))
{
$doSave = implode(',',$_POST['aan']);
mysql_query("UPDATE Modules SET
aan = '".mysql_real_escape_string('1')."'
WHERE module_name IN ('".mysql_real_escape_string($doSave)."')") or die (mysql_error());
mysql_query("UPDATE Modules SET
aan = '".mysql_real_escape_string('0')."'
WHERE module_name NOT IN ('".mysql_real_escape_string($doSave)."')") or die (mysql_error());
}
elseif(!isset($_POST['aan']))
{
mysql_query("UPDATE Modules SET
aan = '".mysql_real_escape_string('0')."'
WHERE module_name NOT IN ('".mysql_real_escape_string($doSave)."')") or die (mysql_error());
}
echo $doSave;
}
echo "<h1>Module beheer</h1>";
$getmodules = mysql_query("SELECT * FROM Modules") or die(mysql_error());
echo "<form id='module' method='post'>";
while($modules = mysql_fetch_array($getmodules))
{
echo "<label>".$modules['module_name']."</label>";
echo "<input type='hidden' name='module_name' value='".$modules['module_name']."' />";
if($modules['aan'] == 1)
{
$set_checked = "CHECKED";
}
else
{
$set_checked = "";
}
echo "<input type='checkbox' name='aan[]' value=".$modules['module_name']." ".$set_checked." /><br />";
}
echo "<input type='submit' id='modulesubmit' name='modulesubmit' value='Opslaan'>";
echo "</form>";
include "footer.php";
?>
我不認爲''
另外,您正在使用不推薦使用的'mysql_'函數。看看你的代碼;有時你正在使用'mysql_real_escape_string',有時你忘記了。我強烈建議你切換到'mysqli_'或PDO - http://net.tutsplus.com/tutorials/php/pdo-vs-mysqli-which-should-you-use/ – 2013-04-09 11:42:34
現在有它:'「「。$ fetchmodules ['module_name']。」 「'但它沒有任何區別。 –
user2237168
2013-04-09 11:46:53