-4

チェックボックスの値をmysql dbのさまざまなフィールドに投稿する方法.コードを見てください.私のコードでは、選択する18のオプションがあります.18のフィールドのテーブルがあります.これらの値をそれぞれの列に入れたいだけです.コード。

    <?php
    if(!empty($_POST['subjects'])) {
        foreach($_POST['subjects'] as $check) {
                echo $check."<br>"; 
        SQL query ???
        }
    }
    ?>

<form action="check.php" method="post">
<input type="checkbox" name="subjects[]" value="PakistanStudies" />
<input type="checkbox" name="subjects[]" value="Islamiat" />
<input type="checkbox" name="subjects[]" value="Urdu(SyllabusA)" />
<input type="checkbox" name="subjects[]" value="Urdu(SyllabusB)" />
<input type="checkbox" name="subjects[]" value="Mathematics" />
<input type="checkbox" name="subjects[]" value="AdMathematics" />
<input type="checkbox" name="subjects[]" value="Sociology" />
<input type="checkbox" name="subjects[]" value="ReligiousStudies" />
<input type="checkbox" name="subjects[]" value="EnglishLanguage" />
<input type="checkbox" name="subjects[]" value="EnglishLiterature" />
<input type="checkbox" name="subjects[]" value="Chemistry" />
<input type="checkbox" name="subjects[]" value="Physics" />
<input type="checkbox" name="subjects[]" value="PrinciplesofAccounting" />
<input type="checkbox" name="subjects[]" value="Economics" />
<input type="checkbox" name="subjects[]" value="BusinessStudies" />
<input type="checkbox" name="subjects[]" value="Biology" />
<input type="checkbox" name="subjects[]" value="Statistics" />
<input type="checkbox" name="subjects[]" value="World History" />
<input type="submit" />
</form>
4

1 に答える 1

0

PHP 経由で SQL データベースに接続するには、MySQLi 拡張機能を使用できます。まず、PHP.ini ファイルで拡張機能を有効にし、Web サーバーを再起動して変更を有効にします。

PHP.ini で次の行を見つける必要があります。

;extension=php_mysqli.dll

単純に次のように変更します。

extension=php_mysqli.dll

MySQLi 拡張機能の使用方法については、ドキュメントを参照してください。ただし、サーバーに接続してデータを挿入する簡単なモック例は次のとおりです。

<?php
$mysqli = new mysqli($servername, $username, $password, $database);

// Ensure connection
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

if ($mysqli->query($sqlCommabnd) === TRUE) {
    // Query was successful!
}

// Disconnect
$mysqli->close();
?>

servername、username、password、database、および sqlCommand 変数に値を割り当てていることを確認してください。

あなたの質問にすでに答えているかどうかはわかりませんが、念のために言っておきます。SQL ステートメントは次のようになります: INSERT INTO table_name VALUES (val1, val2, val3...) そして、次のように VALUES キーワードの前に括弧で囲んで列を明示的に指定できることに注意してください: INSERT INTO table_name (col1, col2 、col3...) 値 (val1、val2、val3...)

ついに; すべてがスムーズに進むように。HTML フォームは、アクションが別の (またはおそらく同じ) ページに設定されたページ上にある必要があります。Submit イベントが発生すると、ページがリダイレクト (または更新) されます。したがって、これが機能するためには、アクションがすべての PHP を含むページを指していることを確認してください。

POST データがチェック ボックスを何を探すのか疑問に思っている場合。以下を試してください: print_r($_POST["subjects"]); これにより、配列の構造が理解できるはずです。

他にも問題がありましたらお知らせください。喜んでお答えいたします。

編集 - コメント後の回答を支援する

注: 次の状況では、列がこれらのチェック ボックスのブール型であると想定しています。

チェックボックスの値が列名であるデータベース内のフィールドを挿入または変更するには; 次の SQL ステートメントを作成してみてください (必要に応じて変更します)。

<?php
$columns = "";
$values = "";
foreach($_POST["subjects"] as $checkedValue)
{
    $columns .= $checkedValue . ", ";
    $values .= "true, ";
}

$sqlCommand = "INSERT INTO table (".substr($columns,0,-2).") VALUES (".substr($values,0,-2).");";

echo $sqlCommand;
?>
于 2012-08-02T13:21:00.677 に答える