我有一个名为“student1905”的数据库,其中有一个名为“programmata”的表,其中有一个名为“Periorismoi”的列。
我有一个页面,里面有一些复选框。我想要做的就是将TICKED(选中)复选框的值添加到“Periorismoi”列中,并在它们之间加上“,”。我正在考虑一个函数,其中名为“ids”的变量将获取所有值。然后将在列中添加ID。但有些事情是错的,我找不到它,虽然我在谷歌上搜索地狱。以下是该页面代码的一部分,其中包含以下复选框:
<form action="Insert4.php" method="POST" periorismoi="periorismoi">
<p>
<input type="checkbox" name="periorismoi[]" value="TRALALALA">Προβλήματα Όρασης<br>
<input type="checkbox" name="periorismoi[]" value="2">Προβλήματα Ακοής<br>
<input type="checkbox" name="periorismoi[]" value="3">Κινητικά Προβλήματα <br>
<input type="checkbox" name="periorismoi[]" value="4">Σοβαρές κινητικές διαταραχές (σε αναπηρικό καροτσάκι)<br>
<input type="checkbox" name="periorismoi[]" value="5">Κατάθλιψη<br>
<input type="checkbox" name="periorismoi[]" value="6">Άγχος<br>
<input type="checkbox" name="periorismoi[]" value="7">Δεν μπορεί να γράφει και να διαβάζει
</p>
<p align="center"><input type="submit" name="Submit" value="ΠΡΟΣΘΗΚΗ"></p>
<p align="left"> <br></p>
</form>
</body>
这里是我在开头的插入(到数据库)页面的代码,这是错误的,因为它在数据库中放入了复选框号:
$link = mysql_connect('localhost', 'student1905','123456');
mysql_select_db('student1905');
if(!$link)
{
die('Could not connect: ' . mysql_error());
}
else {
$periorismoi = $_POST['periorismoi'];
for($i=0; $i<sizeof($periorismoi);$i++){
$sql="INSERT INTO programmata (Auxon,Title,Periorismoi)
VALUES ('','$title','$periorismoi[$i]')";
mysql_query($sql);
}
header("Location:dokimastiko.php"); ;
}
?>
我试图这样做,但它没有用:
$i = 0;
$ids = "";
$first = true;
while(isset($_POST['periorismos[$i]']))
{
if($first) {
$first = false;
} else {
$ids += ","
}
$ids += $_POST['periorismos[$i]'];
$i++;
}
$link = mysql_connect('localhost', 'student1905','123456');
mysql_select_db('student1905');
if(!$link)
{
die('Could not connect: ' . mysql_error());
}
else {
mysql_query("SET NAMES utf8");
$sql = "INSERT INTO programmata (Auxon, Title, Periorismoi) VALUE ('','$title','$ids')";
mysql_query($sql);
header("Location:dokimastiko.php"); ;
}
答案 0 :(得分:0)
而不是行:
for($i=0; $i<sizeof($periorismoi);$i++){
使用:
$len = sizeof($periorismoi);
for($i=0; $i<$len;$i++){
当前函数sizeof
被调用七次。
在后一种情况下,我们只召唤一次。
答案 1 :(得分:0)
最快和最简单的方法可能就是将periorismoi []数组编码为JSON字符串并将其存储在表格列中。
像这样的东西
<?php
if ($POST){
$link = mysql_connect('localhost', 'student1905','123456');
mysql_select_db('student1905');
if(!$link){
die('Could not connect: '.mysql_error());
}
else {
$periorismoi = $_POST['periorismoi'];
$sql="INSERT INTO programmata SET Auxon = '' Title = ".$title." Periorismoi = ".json_encode($periorismoi).";";
if(mysql_query($sql)){
echo "worked";
} else echo "didnt work";
}
}
?>
答案 2 :(得分:0)
$per = $_POST['periorismoi'];
foreach($per as $p) {
$periorismoi=$p.",";
}
$sql="INSERT INTO programmata (Periorismoi) VALUES ($periosismoi)";
mysqli_query($sql);
这样的事情?您所要做的就是使用数组的值创建一个字符串,但是&#39;,&#39;它们之间。
希望这能帮到你!!