0

我有一个名为“student1905”的数据库,其中有一个名为“programmata”的表,其中有一个名为“Periorismoi”的列。

我有一个页面,其中有一些复选框。我要做的就是将勾选(选中)复选框的值添加到“Periorismoi”列中,并在它们之间添加一个“,”。我正在考虑一个函数,其中名为“ids”的变量将获取所有值。然后 ids 将被添加到列中。但是出了点问题,尽管我在谷歌上搜索得很厉害,但我找不到它。这是页面中带有复选框的部分代码:

    <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"); ; 
    }
4

3 回答 3

0

而不是行:

for($i=0; $i<sizeof($periorismoi);$i++){

利用:

$len = sizeof($periorismoi);
for($i=0; $i<$len;$i++){ 

由于该函数sizeof目前被调用了七次。

在后一种情况下,我们只调用一次。

于 2013-10-01T20:34:52.363 回答
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";
    }
}
?>
于 2013-10-01T20:40:48.887 回答
0
$per = $_POST['periorismoi'];    
foreach($per as $p) {
  $periorismoi=$p.",";
}

$sql="INSERT INTO programmata (Periorismoi) VALUES ($periosismoi)";
mysqli_query($sql);

类似的东西?您所要做的就是用数组的值创建一个字符串,但在它们之间添加一个“,”。希望这对你有帮助!!

于 2013-10-01T20:58:52.240 回答