2012-03-12 20 views
1

私は専門家ではないので、本当にあなたの答えに固有のものであれば本当に感謝しています。複数のチェックボックスデータをデータベースに保存する方法は?

この登録フォームには、チェックボックスがたくさんあるセクションがあります。これをデータベースに保存するのが最善の方法です。すべての値を単一の列にする必要があるかどうか、または登録フォームのこのセクションに対してのみ異なるテーブルを作成する必要があるかどうかはわかりません。また、後でこのデータをすべてデータベースから取り出し、「管理バックエンド」に表示して、データベースの更新版を入手できるようにする必要があることも考慮する必要があります。下にチェックボックスを含むセクションのhtmlコードの一部が表示されます。

<p>4) Please select only the product(s) you are interested in. (Anticipated purchase amounts for the quarter.)</p> 
     <table cellpadding="15" > 
     <tbody> 
    <tr> 
     <th>Handbags</th> 
     <th>Fashion Jewelry</th> 
     <th>Watches</th> 
     <th>Crystal Travel Jewelry</th> 
     <th>Fine Jewelry</th> 
    </tr> 
<tr> 
<td> 
<input type="checkbox" name="pro_amount[]" value="1" />$2500+ </br> 
<input type="checkbox" name="pro_amount[]" value="2" />$1000-$2500 </br> 
<input type="checkbox" name="pro_amount[]" value="3" />Up to $1000 </br>  
</td> 
    <td> 
<input type="checkbox" name="pro_amount[]" value="4" />$2500+ </br> 
<input type="checkbox" name="pro_amount[]" value="5" />$1000-$2500 </br> 
<input type="checkbox" name="pro_amount[]" value="6" />Up to $1000 </br> 
<td> 
<input type="checkbox" name="pro_amount[]" value="7" />$2500+ </br> 
<input type="checkbox" name="pro_amount[]" value="8" />$1000-$2500 </br> 
<input type="checkbox" name="pro_amount[]" value="9" />Up to $1000 </br> 
<td> 
<input type="checkbox" name="pro_amount[]" value="10" />$2500+ </br> 
<input type="checkbox" name="pro_amount[]" value="11" />$1000-$2500 </br> 
<input type="checkbox" name="pro_amount[]" value="12" />Up to $1000 </br> 
<td> 
<input type="checkbox" name="pro_amount[]" value="13" />$2500+ </br> 
<input type="checkbox" name="pro_amount[]" value="14" />$1000-$2500 </br> 
<input type="checkbox" name="pro_amount[]" value="15" />Up to $1000 </br>   
</tr> 

    </tbody> 
     </table> 
     <p>5) What are the average retail price points for each of the following items? (Check only those that apply.)</p> 
     <table cellpadding="15" > 
     <tbody> 
    <tr> 
     <th>Handbags</th> 
     <th>Jewelry</th> 
     <th>Watches</th> 
    </tr> 
<tr> 
<td> 
<input type="checkbox" name="av_rtp[]" value="1" />$125 or greater<br> 
<input type="checkbox" name="av_rtp[]" value="2" />$75</br> 
<input type="checkbox" name="av_rtp[]" value="3" /> $40</br>  
</td> 
    <td> 
<input type="checkbox" name="av_rtp[]" value="4" />$125 or greater<br> 
<input type="checkbox" name="av_rtp[]" value="5" />$75</br> 
<input type="checkbox" name="av_rtp[]" value="6" /> $40</br>  
<td> 
<input type="checkbox" name="av_rtp[]" value="7" />$125 or greater<br> 
<input type="checkbox" name="av_rtp[]" value="8" />$75</br> 
<input type="checkbox" name="av_rtp[]" value="9" /> $40</br>  
</tr> 
     </tbody> 
     </table> 

Jsfiddle Demo if that helps.

お手数ですがお寄せいただきありがとうございます。あなたはカップルのオプションがあり

答えて

1

... 1箱を許可
1)は、カテゴリごとにチェックする:
一つだけを維持することが容易である方法のラジオボタンにあなたのチェックボックスを変更した場合この場合は、それが良いだろう一度にチェックすると、データベースの1つの列に選択されている1つのボタンの値を保存するだけで済みます。複数のボックスを許可

2)は、カテゴリごとにチェックする:
この場合、あなたはあなたのチェックボックスを保つことができ、ダウン、データベースの負荷を維持するために1列にチェックボックスの合計値を保存することをお勧め。しかし、これは、データベースに情報を保存する前に行った追加のスクリプトを逆にする必要があることを意味します。各カテゴリの3つのチェックボックスの値を1、10、100とすることで、一連の%操作を使用してチェックされたチェックボックスを簡単に確認できます。

<table cellpadding="15" >
<tbody>
<tr>
<th>Handbags</th>
<th>Jewelry</th>
<th>Watches</th>
</tr>
<tr>
<td>
<input type="checkbox" name="av_rtp[]1" value="1" />$125 or greater<br />
<input type="checkbox" name="av_rtp[]1" value="10" />$75<br />
<input type="checkbox" name="av_rtp[]1" value="100" /> $40<br />
</td>
<td>
<input type="checkbox" name="av_rtp[]2" value="1" />$125 or greater<br />
<input type="checkbox" name="av_rtp[]2" value="10" />$75<br />
<input type="checkbox" name="av_rtp[]2" value="100" /> $40<br />
<td>
<input type="checkbox" name="av_rtp[]3" value="1" />$125 or greater<br />
<input type="checkbox" name="av_rtp[]3" value="10" />$75<br />
<input type="checkbox" name="av_rtp[]3" value="100" /> $40<br />
</tr>
</tbody>
</table>
*分離し、それらを保つために、各グループが別の名前を持っているかに注目してください。ラジオボタンやチェックボックスを使用するかどうかは、それぞれ異なることを意味するため、これを行う必要があります。
これが役立つかどうかは教えてください。

+0

2番目のオプションでは、データベースに3つの新しい列を追加することを意味します。 av_rtp [] 1、av_rtp [] 2、av_rtp [] 3を追加する必要があります。あなたは、%operationを使ってどのチェックボックスを選択したのかを後でチェックする方が良いと言った。 %操作が何であるかを説明したり、例を挙げたりできますか?一方、1から9までの値を使用してデータベース内のすべての値を1つの列に保存することを選択した場合、データベースから値を取り出してエディションページに表示するのは難しいでしょうか?途中であなたの答えに感謝します。 – codekmarv

+1

私はav_rtp [] 1、av_rtp [] 2、av_rtp [] 3を持っていたのですが、それらの値のすべての入力を分けたいということです。たとえば、ハンドバッグ、ファッションジュエリー、腕時計、クリスタルトラベルジュエリー、ファインジュエリーにどれだけ費やすかを知りたいとします。つまり、必ずしも同じ価値を持つとは限りません。フォームに異なる名前を付けることにより、それらの値を別々に保つことができます。 1から9までの数字の範囲は、1 + 2 = 3なので使用するのが難しいです。これは3を好みとして取得するのと同じである可能性があります。 123%100 = 23 ... 23%10 = 3 ...それは役に立ちますか? @codekmarv –

+0

ありがとうございます。私はこれが私の理解のレベルより少し上だと思っていますが、私はすでにそれについて学んでいます。ありがとう。あなたの提案に基づいて、私は各チェックボックスの列を作成する必要はないことを意味し、それはまさに私がやろうとしていることです。私はまだこのテーブルを別のテーブル(小売店)に入れて、私のデフォルトの顧客テーブルではないと決めたので、私は使用すべきテーブル構造を理解しようとしています。 – codekmarv

2

区切られたデータのリストを1つの列に格納することは非常に貧弱です。それはクエリの問題(およびnonsargable where句を使用してクエリする必要があるときのパフォーマンスの問題)を作成します。別のテーブルを作成します。

+0

よろしくお願いします。どのテーブル構造をお勧めしますか?私は既に登録フォームに要求されたすべての基本情報を保存する私の顧客テーブルを持っています。だから私はこのセクションのすべての情報を格納するために新しいテーブルを作成する必要があると思う[登録フォームのこのセクションは、小売業者のアカウントを申請している人のためだけです] – codekmarv

+1

これは、顧客ID、および必要なその他のフィールドが表示されます。外部キーの関係を作成してください。 – HLGEM

+0

私が登録用紙を見て、新しいテーブルをデザインするのに役立つかどうかは不思議でした。私は少なくとも1つの新しいテーブルが必要だと思いますが、チェックボックスについては何をお勧めしますか?私はこの新しいテーブルにそれぞれの新しい列を作成しますか?はいの場合、私の元の顧客テーブルを混雑させることと同じではないでしょうか? – codekmarv

関連する問題