2011-12-14 5 views
0

私はPHPを使用してオンラインフォームからデータベースにデータを投稿しています。フォームのフィールドの一部はチェックボックスです。私はもともとチェックボックスのデータ型をBITとして定義しましたが、チェックボックスを選択してフォームを送信した後、データベースを見ると値はすべて「b」です。その後、データ型をBOOLEANに設定し、TINYINTに切り替えました。ただし、チェックボックスの選択/フォームの送信後、データベース内の値はすべて「0」です。選択されているチェックボックスに対応する「1」が表示されることを期待していますが、それは起こっていません。私は間違って何をしていますか?ありがとう!TinyintをPHPで処理する

+3

コードを表示してください。 – Polynomial

答えて

2

チェックボックスの値checkedをデータに渡す可能性があります。チェックボックスは真/偽を使用せず、むしろ"checked"または空を使用します。

$value = ($checked == "checked" ? 1 : 0) 
1

ここでは、文字列を整数に変換することができます。 PHPでこれを行うと、結果は0(see this)になります。 MySQLについてはわかりませんが、私はそれが広く似たような方法で操作を処理していると考えています。あなたはこのようなデータベースに挿入する値を取得し、PHPで、

<input name="mycheckbox" type="checkbox" value="1" /> 

その後:

これに対処する方法は、私が言うと、あなたのチェックボックスは次のように定義されていることです

$myCheckBoxIsChecked = (!empty($_POST['mycheckbox'])) ? 1 : 0; 

その後、あなたは無消毒して、クエリで$myCheckBoxIsCheckedストレートを使用することができます - あなたはそれだけで今まで1または0の値を持つことができることを知っているので。

+0

それは働いた.. – user1097946