我是新来的,我需要一些帮助,如果你能给我一个解决我的问题的话会很棒。所以我需要一些帮助来解决这个问题,这里是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。
答案 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_,因为它很快就会被弃用。为了更好的安全性。