我需要一些帮助复选框PHP

时间:2014-05-29 08:03:31

标签: php html mysql checkbox

我是新来的,我需要一些帮助,如果你能给我一个解决我的问题的话会很棒。所以我需要一些帮助来解决这个问题,这里是HTML

<html><body> <form method="post" action="test.php"> Flights on: <br/> <input type="checkbox" name="Days[]" value="Daily">Daily<br> <input type="checkbox" name="Days[]" value="Sunday">Sunday<br> <input type="checkbox" name="Days[]" value="Monday">Monday<br> <input type="checkbox" name="Days[]" value="Tuesday">Tuesday <br> <input type="checkbox" name="Days[]" value="Wednesday">Wednesday<br> <input type="checkbox" name="Days[]" value="Thursday">Thursday <br> <input type="checkbox" name="Days[]" value="Friday">Friday<br> <input type="checkbox" name="Days[]" value="Saturday">Saturday <br> <input type="submit" name="submit" value="submit"> </form> </body> </html>

和PHP一:

`

 // Make a MySQL Connection
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());

$checkBox = implode(',', $_POST['Days']);

if(isset($_POST['submit']))
{       
$query="INSERT INTO test (c1,c2,c3,c4,c5,c6,c7) VALUES (" . $_POST['Days'][0] . ",
"  .   $_POST['Days'][1] . ",
" . $_POST['Days'][2] . ",
" . $_POST['Days'][3] . ",
" . $_POST['Days'][4] . ",
" . $_POST['Days'][5] . ",
" . $_POST['Days'][6] . ",
"  .$_POST['Days'][7] . ")";     

mysql_query($query) or die (mysql_error() );

echo "Complete";

}

?>` 

它告诉我无限制的偏移量:你的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在&#39; ,,,,)附近使用正确的语法。在第1行 plzzzzz帮助!!!! 我需要将复选框的值插入我的sql db。

6 个答案:

答案 0 :(得分:0)

如果未选中该复选框,则不会发布。你可以为你的复选框添加自定义键,例如Days [Daily],然后检查是否使用php设置了值:

$daly = empty($_POST['Days']['Daily']) ? 0 : $_POST['Days']['Daily'];

你应该对所有复选框做同样的事情。

答案 1 :(得分:0)

原因: 未选中的复选框将不会发布。 例如,如果您没有选中checkbox7,那么$_POST['Days'][7]将为空,您的查询将以“,,)”结束。像这样:

INSERT INTO test (c0,c1,c2,c3,c4,c5,c6,c7) VALUES (0,1,2,3,4,5,6,,)

而且,你的专栏应该数学你的文件。

将您的查询逻辑更改为以下内容:

$query="INSERT INTO test (c0,c1,c2,c3,c4,c5,c6,c7) VALUES ('" . $_POST['Days'][0] . "',
'"  .   $_POST['Days'][1] . "',
'" . $_POST['Days'][2] . "',
'" . $_POST['Days'][3] . "',
'" . $_POST['Days'][4] . "',
'" . $_POST['Days'][5] . "',
'" . $_POST['Days'][6] . "',
'"  .$_POST['Days'][7] . "')";  

它会产生

INSERT INTO test (c0,c1,c2,c3,c4,c5,c6,c7) VALUES ('0','1','2','3','4','5','6','')

答案 2 :(得分:0)

检查一下以了解如何连接到mysql。 http://www.w3schools.com/php/func_mysql_connect.asp

我建议在直接进入PHP之前,你应该学习基础知识,然后开始构建自己的PHP项目。

另外,总是看一下给出的错误,它说错误是你的PHP代码之一,所以你应该检查一下以找出问题。

以下是学习代码的最佳地点......

http://www.codecademy.com/http://www.phptherightway.com/

第一个是互动的,可能是最有用的开始。然后以正确的方式检查PHP,因为这将向您展示如何使PHP项目成为正确和最新的方式。

祝你未来的PHP项目好运。 :)

答案 3 :(得分:0)

嘿,我认为你需要改变你的PHP。您需要将其存储在变量中。请检查此代码并告诉我它是否正常工作。您还需要再添加一个 - c8

// Make a MySQL Connection
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());

$checkBox = implode(',', $_POST['Days']);
 $days1=$_POST['Days'][0];
$days2=$_POST['Days'][1] ;
$days3=$_POST['Days'][2] ;
$days4=$_POST['Days'][3] ;
$days5=$_POST['Days'][4] ;
$days6=$_POST['Days'][5] ;
$days7=$_POST['Days'][6] ;
$days8=$_POST['Days'][7] ;
if(isset($_POST['submit']))
{       
$query="INSERT INTO test (c1,c2,c3,c4,c5,c6,c7,c8) VALUES ('$days1',
'$days1','$days2','$days3','$days4','$days5','$days6','$days7','$days8');     

mysql_query($query) or die (mysql_error() );

echo "Complete";

}

?>

答案 4 :(得分:0)

只需使用implode()

即可
echo "INSERT INTO test (c1,c2,c3,c4,c5,c6,c7) VALUES ('".implode("','", $_POST[Days])."')";

<强> 输出:

INSERT INTO test (c1,c2,c3,c4,c5,c6,c7) VALUES ('Daily','Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')

答案 5 :(得分:0)

错误在于:$checkBox = implode(',', $_POST['Days']);

','部分 - 您应该使用"','"而不是',',因为sql需要单引号内的每个值。

和此处:VALUES (" . $_POST['Days'][0] . ", .... , " .$_POST['Days'][7] . ")";

您缺少为第一个值启动单引号并为最终值结束单引号。所以在打开括号后和结束括号之前添加额外的单引号:

VALUES ('" . $_POST['Days'][0] . ", .... , " .$_POST['Days'][7] . "')";

*并且使用mysqli_和准备好的语句,并且在处理数据库时不要使用mysql_,因为它很快就会被弃用。为了更好的安全性。