我有一个数据库,里面有3个。第一个表被命名为"periorismoi"和"programmata"。第一个有2个列("Auxon","标题"),第二个有3个("Auxon","名称","Periorismoi")。我制作了一个带有添加新"程序"形式的页面。在"名称"列中,将从表单中添加文本,在"Periorismoi"列中,将从复选框(来自同一表单)中添加名称。 复选框名称将派生自表"periorismoi"。我为您提供表单的页面,然后插入到数据库(操作)页面。 它不起作用。也许是服务器错误?在我把复选框放在表单中之前,它曾经工作过。请注意,Periorismoi与periorismoi不同。
<form action='Insert.php' method="post" enctype='multipart/form-data' periorismoi="periorismoi">
<textarea name="title" placeholder="Πρόγραμμα" rows='"1'" cols='"50'"></textarea>
<?php
$link = mysql_connect('localhost', 'student1905','123456');
mysql_select_db('student1905');
$q="select * FROM periorismoi";
$result=mysql_query($q);
$counts=mysql_num_rows($result);
for ( $i = 0; $i < $counts; ++$i ) {
$row = mysql_fetch_array( $result );
if(isset($row[ "Title" ]))
{$Title= $row[ "Title" ];
}
?>
<input type="checkbox" name="<?php echo "periorismoi$i"; ?>" value=""<?php echo $row['Title']; ?>""><?php echo "$Title";?> <br>
<?php
}
?>
插入.php页:
<?php
$link = mysql_connect('localhost', 'student1905','123456');
mysql_select_db('student1905');
$title= trim($_POST["title"]);
if(!$link)
{
die('Could not connect: ' . mysql_error());
}
else {
if(strlen($title) == 0)
{
header("Location:Index.php");
}
else
{
mysql_query("SET NAMES utf8");
$periorismoi = implode(',', $_POST['periorismoi']);
$len = sizeof($periorismoi);
for($i=0; $i<$len;$i++){
$sql="INSERT INTO programmata (Auxon,Title,Periorismoi) VALUES ('','$title','$periorismoi')";
mysql_query($sql);
}
header("Location:Index.php"); ;
}
}
?>
在表单中,您可以创建多个具有不同名称属性的复选框:
(periorismoi0, periorismoi1, ...)
然后,当您读取参数时,您正在尝试读取不存在的$_POST['periorismoi']
。您应该阅读每个复选框($_POST['periorismoi0'], $_POST['periorismoi1'], ...
(我强烈建议不这样做),或者您应该定义多个具有相同名称的复选框。
检查此线程:从多个复选框中获取 _POST 美元