「student1905」という名前のデータベースがあり、「programmata」という名前のテーブルがあり、「Periorismoi」という名前の列があります。
いくつかのチェックボックスがあるページがあります。私がしたいのは、チェックされた(選択された)チェックボックスの値を列「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"); ;
}