web-dev-qa-db-ja.com

複数のチェックボックス値をテーブルに挿入するにはどうすればよいですか?

フォームから複数のチェックボックス値をテーブルに挿入するための実用的なソリューションを見つけたり見つけたりすることはできません。私が来たのは、1つのチェックボックス値の値をテーブルに挿入することです。単なる1つではなく、複数のチェックボックス値を挿入する方法を教えてください。

私がこれまでに持っているものを以下で見つけてください:

私のフォーム:

<html>
<body>
<form method="post" action="chk123.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ファイル:

<?php

// Make a MySQL Connection
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());

$checkBox = $_POST['Days'];

if(isset($_POST['submit']))
{
    for ($i=0; $i<sizeof($checkBox); $i++)
        {
            $query="INSERT INTO example (orange) VALUES ('" . $checkBox[$i] . "')";     

            mysql_query($query) or die (mysql_error() );
        }
    echo "Complete";

}

?>
10
SirBT

指定する必要があります

<input type="checkbox" name="Days[]" value="Daily">Daily<br>

配列として。

すべての名前Days[]を追加し、配列のようにこれでphpで作業します。

その後、dbの異なる列でINSERT値を使用するか、implodeを使用して値を1つの列に保存できます。


テストしませんでしたが、このように試すことができます。 mysqlmysqliに置き換えることを忘れないでください。

<html>
<body>
<form method="post" action="chk123.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 example (orange) VALUES ('" . $checkBox . "')";     

    mysql_query($query) or die (mysql_error() );

    echo "Complete";

}

?>
22

HTMLで配列を宣言する必要があります

<input type="checkbox" name="Days[]" value="Daily">

また、このような1つのクエリで複数のアイテムを挿入できます

$query = "INSERT INTO example (orange) VALUES ";
for ($i=0; $i<count($checkBox); $i++)
    $query .= "('" . $checkBox[$i] . "'),";
$query = rtrim($query,',');
mysql_query($query) or die (mysql_error() );

mysql_*関数は 公式に非推奨 であるため、新しいコードでは使用しないでください。代わりにPDOまたはMySQLiを使用できます。詳細については、 SOに関するこの回答 を参照してください。

4
kero

私はこれがうまくいくはずだと思う.. :)

<input type="checkbox" name="Days[]" value="Daily">Daily<br>
<input type="checkbox" name="Days[]" value="Sunday">Sunday<br>
0
Drudge Rajen