2016-11-24 135 views
2

我的问题如下。 This is my mySQL table, and HTML form。我需要找出一个PHP代码来将复选框数据插入到mySQL表中。插入复选框数据到mysql

如果复选框被选中,我想将该特定列填充为“1”,否则将其填充为“0”。

一次添加一行。

我正在使用2个PHP文件。

1)regForm.php

<html> 

<form method="get" action="regCode.php"> 

ID: <input type="text" name="id"/></br> 

Select Available dates: </br> 
Monday <input type="checkbox" value="monday"></br> 
Tuesday <input type="checkbox" value="tuesday"></br> 
Wednesday <input type="checkbox" value="wednesday"></br> 
Thursday <input type="checkbox" value="thursday"></br> 
Friday <input type="checkbox" value="friday"></br> 
<input type="submit" value="Submit"/><br></br> 

</html> 

2)regCode.php

<html> 

<body bgcolor="#FFFCC"> 
<?php 
$dbhost='localhost'; 
$dbuser='username'; 
$dbpass='password'; 
$conn=mysql_connect($dbhost,$dbuser,$dbpass); 
if(!$conn) 
{ 
    die('could not connect'.mysql_error()); 
} 


$sql="INSERT INTO available_days (monday, tuesday, wednesday, thursday, friday) VALUES 
()"; 



mysql_select_db('testdb'); 
$retval=mysql_query($sql,$conn); 

if(!$retval) 
{ 
    die('could not add data'.mysql_error()); 
} 

$message="Successfully Added ID No: ".mysql_insert_id(); 
echo "<script type='text/javascript'>alert('$message'); window.location.href='regForm.php';</script>"; 

mysql_close($conn); 
?> 
</body> 
</html> 
+3

没有任何更换试图编码这个问题太广泛了。 SO不是代码编写服务,因此您需要展示一些解决问题的尝试,然后询问您何时遇到特定问题。 –

+0

只需使用'isset()'。它返回一个布尔值,但是如果将其转换为整数,它会给出1或0.'现在你只需要插入它;-) – Qirel

+0

@ SamiKuhmonen,我编辑并把我的代码放在那里。 – NSJ

回答

2
# Please Try again below code. # 

     <?php 
    if($_SERVER['HTTP_HOST'] == 'localhost:8080') { 
     $servername = "localhost"; 
     $username = "root"; 
     $password = ""; 
     $db = 'test'; 
    } 

    $conn = mysql_connect($servername, $username, $password); 
    if ($conn) { 
     mysql_select_db($db, $conn) or die('Could not select database.'); 
    } 

    if(isset($_POST['submit'])){ 
     $monday = isset($_POST['day_name']['monday']) ? $_POST['day_name']['monday'] : 0; 
     $tuesday = isset($_POST['day_name']['tuesday']) ? $_POST['day_name']['tuesday'] : 0; 
     $wednesday = isset($_POST['day_name']['wednesday']) ? $_POST['day_name']['wednesday'] : 0; 
     $thursday = isset($_POST['day_name']['thursday']) ? $_POST['day_name']['thursday'] : 0; 
     $friday = isset($_POST['day_name']['friday']) ? $_POST['day_name']['friday'] : 0; 

     //echo "INSERT INTO `available_day` (`monday`, `tuesday`, `wednesday`, `thursday`, `friday`) VALUES ('".$monday."', '".$tuesday."', '".$wednesday."', '".$thursday."', '".$friday."')"; 

     $sql_add = mysql_query("INSERT INTO `available_day` (`monday`, `tuesday`, `wednesday`, `thursday`, `friday`) VALUES ('".$monday."', '".$tuesday."', '".$wednesday."', '".$thursday."', '".$friday."')"); 

     if(!$sql_add) 
     { 
      die('could not add data'.mysql_error()); 
     } 

     $message="Successfully Added ID No: ".mysql_insert_id(); 
     echo "<script type='text/javascript'>alert('$message'); window.location.href='index6.php';</script>"; 

    } 

?> 

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="contact_form" enctype='multipart/form-data'> 
    <div class="form-group" > 
     <input type="checkbox" name="day_name[monday]" value="1">Mon<br> 
     <input type="checkbox" name="day_name[tuesday]" value="1"> Tues<br> 
     <input type="checkbox" name="day_name[wednesday]" value="1"> Wed<br> 
     <input type="checkbox" name="day_name[thursday]" value="1"> Thu<br> 
     <input type="checkbox" name="day_name[friday]" value="1"> Fri<br> 

    <input name="submit" type ="submit" class="btn btn-default" style="border-radius: 0px; background-color: midnightblue; box-shadow: 2px 2px 2px #888888; color: white;"> 
    </div> 

</form> 
+0

'method =“get”',但在PHP中使用'$ _POST',并不是那种方式。此外,该索引与提供的HTML表单的名称不匹配。 – Qirel

1

1)regForm.php

<form method="post" action="regCode.php"> 
ID: <input type="text" name="id"/></br> 

Select Available dates: </br> 
Monday <input type="checkbox" value="1" name='monday'></br> 
Tuesday <input type="checkbox" value="1" name='tuesday'></br> 
Wednesday <input type="checkbox" value="1" name='wednesday'></br> 
Thursday <input type="checkbox" value="1" name='thursday'></br> 
Friday <input type="checkbox" value="1" name='friday'></br> 
<input type="submit" value="Submit"/><br></br> 
</html> 

2)regCode.php

<html> 

<body bgcolor="#FFFCC"> 
<?php 
$dbhost='localhost'; 
$dbuser='username'; 
$dbpass='password'; 
$conn=mysql_connect($dbhost,$dbuser,$dbpass); 
if(!$conn) 
{ 
    die('could not connect'.mysql_error()); 
} 

if(isset($_POST['submit'])){ 
    $monday = isset($_POST['monday']) ? $_POST['monday'] : 0; 
    $tuesday = isset($_POST['tuesday']) ? $_POST['tuesday'] : 0; 
    $wednesday = isset($_POST['wednesday']) ? $_POST['wednesday'] : 0; 
    $thursday = isset($_POST['thursday']) ? $_POST['thursday'] : 0; 
    $friday = isset($_POST['friday']) ? $_POST['friday'] : 0; 

    $sql="INSERT INTO available_days (monday, tuesday, wednesday, thursday, friday) VALUES ('".$monday."', '".$tuesday."', '".$wednesday."', '".$thursday."', '".$friday."')"; 

    mysql_select_db('testdb'); 
    $retval=mysql_query($sql,$conn); 

    if(!$retval) 
    { 
    die('could not add data'.mysql_error()); 
    } 
    $message="Successfully Added ID No: ".mysql_insert_id(); 
    echo "<script type='text/javascript'> alert('$message') window.location.href='regForm.php';</script>"; 
    mysql_close($conn); 
    } 
    ?> 
</body> 

如果DB列INT请下面的代码

$monday = isset($_POST['monday']) ? 1 : 0; 
$tuesday = isset($_POST['tuesday']) ? 1 : 0; 
$wednesday = isset($_POST['wednesday']) ? 1 : 0; 
$thursday = isset($_POST['thursday']) ? 1 : 0; 
$friday = isset($_POST['friday']) ? 1 : 0; 

和查询这样

$sql="INSERT INTO available_days (monday, tuesday, wednesday, thursday, friday) VALUES ($monday, $tuesday, $wednesday, $thursday, $friday)"; 
+0

无论是否检查复选框,它都会将全部“0”添加到数据库中。你能帮我修好吗? – NSJ

+0

'method =“get”'in your form,but'$ _POST ['monday']'in PHP - 这就是原因。 – Qirel

+0

@Qirel我纠正了答案,谢谢 – Elby