2017-10-07 5 views
-1

以下のコードでは、4つのチェックボックスを選択しています。これら4つのチェックボックスを表示できます。しかし、選択した4つのチェックボックスの値をlecture1、lecture2などの下の別の列にデータベースの同じテーブルに格納する方法。 4は講義のチェックボックスのデフォルト値です。複数のチェックボックスの値をPHPを使用してデータベース内の同じテーブルの複数の列に格納する方法は?

$teachername1=$_POST[ 'teachername1' ]; 
echo"$teachername1"; 
$_SESSION['teachername1']=$_POST[ 'teachername1' ]; 
if(!empty($_POST['lecture'])) 
{ 
    $checked_count = count($_POST['lecture']); 
    echo"You have selected following ".$checked_count."option(s):<br/>"; 
    foreach($_POST['lecture'] as $selected) 
    { 
     echo $selected."<br>"; 
    } 
}  
+2

私はあなたが精神的なフォーラムの後にいると思います。ここでは、テーブルを想像するのではなく、テーブルの構造を見たいと思っています。 – Strawberry

+0

[MySQLデータベースにチェックボックスの値を格納するにはどうすればよいですか?](https://stackoverflow.com/questions/6784533/whats-the -best-way-to-store-checkbox-values-in-mysql-database) – Dmitry

答えて

0

あなたはテーブル構造を投稿していませんが、とにかくここで私の最善の提案をしようとします。

既存のシステム:

あなたは例えばのために、あなたのテーブルの4つの選択肢の列があります。

を彼らは(1)設定または設定されていないかどうかをチェックするブール値として、すべての4つの列を作る(0)によります彼らが選択を選択したかどうかを追跡するためにそれぞれ1または0を挿入します。

id,(other columns),choice1, choice2, choice3, choice4 

データベーステーブル1または0にそれぞれのテーブルを挿入するときに、選択した値をチェックボックスに挿入するたびに必ず入力してください。

列が1に設定されている場合、それぞれの行のレコードをフェッチすると、そのチェックボックスが選択されています。

システムに問題があります。次のようにしてください。

候補]ウェイ:

異なる列にチェックボックスの値を格納しないでください。今日は4つの値しか持たないかもしれません。将来、8つのチェックボックスがあると思います。その場合は、さらに4列を追加する必要があります。

代わりに、それぞれの名前のテーブルを1つ追加することでデータベーステーブルを正規化することができます。あなたの新しい正規化されたテーブルは次のようになります

checkbox table 
-------------- 

id, checkbox_name, checkbox_value(if any) 

teachers table 
-------------- 

id, cols (other columns which I dont know whether its there or not) 

teachers_choices //This is the checkbox selected table 
---------------- 

id, teacher_id(this references to teacher table), checkbox_id (this references to checkbox table) 
+0

あなたの提案をありがとう:) –

関連する問題