- ベストアンサー
PHP&MySQLでチェックボックスの解除
こんにちは。 雑誌の購入をチェックボックスで購入済み、未購入と管理をしています。 MySQLのテーブルは zasshiテーブルにnameフィールドとcheckフィールドがあります。 チェックが入れば、購入済みとしてMySQLのcheckフィールドに1を登録します。 検索をして雑誌名とチェックボックスを表示 checkフィールドに1が登録されているものをディフォルトでチェックがはいるようにはできました。 次に解除をできるようにしようと思ったのですが、チェックボックスのチェックを外して送信をすると何も受け取れないので、解除ができません。 検索でしぼりこんでの表示をしているので、チェックが入っていないものを全て0にすることもできないので、何かよい方法はないでしょうか? まとめると、現在checkフィールドに1で登録されているものをチェックボックスの解除で0にしたいということです・・・ 拙い文章にわかりにくいかと思いますが,どうかよろしくお願いします。
- amountainblast
- お礼率72% (155/214)
- PHP
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>検索でしぼりこんでの表示をしているので、チェックが入っていないものを全て0にすることもできないので、何かよい方法はないでしょうか? 「チェックが入っていない」=「未所持(状態)」と考えると0でも構わないと思いますが。 それとも「チェックを外す」=「売却、譲渡(状態)」として他の「未購入(状態)」と区別したいということですか? ならば「チェックされていない && DBのcheckが1」である場合、その状態を表す数字(文字列がお勧めだが)としてcheckに登録すれば良いのではないでしょうか。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
どういうフォームなのか具体的な例がないと 答えようがありませんね。 hiddenでcheckに対応するnameを渡してやれば すむはなしだと思いますがいかがでしょう? とにかく回答を期待しているのであれば どういうふうにformを書いているか 簡潔に示してください。
お礼
ありがとうございます。 hiddenを使うのは確かにありですね。 回答ってよりも考え方とかこんな方法もあります。 みたいなアドバイスが欲しかったのでそんなに詳しく書きませんでした。 困ってはいるんですが・・・。 hiddenを使えばできそうな気がしますので、試してみます。 どうもありがとうございました。
関連するQ&A
- 【mysql.php】チェックボックスの処理
データベースにチェックボックスのON、OFF状態を 保存しようとしているのですが、 やり方が色々あり、どのやり方が一番いいのかわかりません。 調べたところ、大きく以下の4つがあることがわかりました。 ----------------------------------------- 方法1 チェックボックス分カラムを用意する ----------------------------------------- 例 id name flag4 flag3 flag2 flag1 15 なまえ 1 1 0 0 ----------------------------------------- 方法2 ビット演算を使う ----------------------------------------- id name bit 15 なまえ 12 ----------------------------------------- 方法3 カンマで区切ってデータを入れる ----------------------------------------- id name check 15 なまえ 3,4 ----------------------------------------- 方法4 チェックボックス管理テーブルを作る ----------------------------------------- main_tb id name 15 なまえ check_tb id check 15 4 15 3 それぞれ、一長一短があると思うのですが それぞれのメリット・デメリット、一般的にどの方法が好まれているのか等 アドバイス頂けると嬉しいです。
- ベストアンサー
- MySQL
- 【php MySQL】データが取り出せない
こんにちは。 MySQLのデータをphpで管理するページを作っていますが、壁にぶつかってしまいました。 データベースのあるフィールドに、「あああ」「いいい」「ううう」というようにいろんな言葉が登録されています。 これらを削除・追加するために、phpで取り出して、チェックボックスでリストアップします。 リストにない言葉は新たに登録できるように、テキストフィールドも用意しています。 □あああ □いいい □ううう 新規:[ ](テキストフィールド) というふうにです。 このフォームはちゃんと機能していまして、追加した言葉はデータベースに記録されているのですが、なぜかフォームにリストアップされないのです。 例えば、 □あああ □いいい □ううう 新規:[ ] で、新規のところに「かかか」と入れて送信すると、 □あああ □いいい □ううう □かかか 新規:[ ] となってほしいわけですけど、 □あああ □いいい □ううう □ 新規:[ ] となってしまうのです。 フォームを使って送信した言葉が、データベースに記録されていながら、取り出せないというのは、何が原因だと考えられるでしょうか? 何かすごく単純なことのような気がするので、ソースは載せないでおきます。 ご教示をよろしくお願いいたします。
- ベストアンサー
- PHP
- phpからmysqlの操作について
phpでmysqlを操作してブラウザー上へレコードの全データをテーブル化して表示したとします。 表示されているレコードから任意のレコードを選択し削除するにはどうすればよいでしょうか。 削除のsqlは解りますが、ブラウザー上に表示されているデータを選択して内容をphpへ送信する方法がわかりません。 フィールドごとにチェックボックスを出力してvalue にフィールドの値をセットしておきsubmit ボタンでvalue値を送信するような方法でしょうか。 Visual Basic などではグッリドコントロールの何処が選択されているか取得できるので簡単ですが, php とブラウザーでそんなことができるとは思えません。 よろしくお願いいたします。 php も sql もWEB上にあります。
- ベストアンサー
- PHP
- チェックボックス連結
MySQLで、perlを使ってチェックボックスでデータを送信するのですが、 カラムを分けずに、チェックボックスで複数選択されたデータを、;などの仕切りで同一フィールドへ記録したいのですが、やり方がわかりません。 <input type = checkbox name = col1 value="1"> <input type = checkbox name = col1 value="2"> <input type = checkbox name = col1 value="3"> <input type = checkbox name = col1 value="4"> 結果 col1 |col2 | +-------------- 1;2;3;4| | のような感じです。よろしくお願いします。
- ベストアンサー
- MySQL
- チェックボックスの値がマイナス表示に
mysqlに保存専用のテーブルがありそこにすべてのデータを保存していますが、チェックボックスがtrue の状態で保存するとそのテーブルのフィールドにはチェックボックスではなく[-1] と表示されてしまいます。 falseの場合は[0]で表示されています。 そのテーブルはmysqlのサーバーにあるのでフォームとの関連はリンクテーブルとなっています。 どなたかこのリンクテーブルを編集したり、このマイナス表示を普通の数字もしくはtrue にする方法をご存知ありませんか? 集計ができなくて困っています。 ちなみにwindows2000でoffice2000です。
- ベストアンサー
- オフィス系ソフト
- チェックボックスの値の受け渡し
PHP&MySQLで勉強しているものです。 ブラウザ上のチェックボックスにチェックすると、保存時にフィールド(CB)に値:1を書き込み、逆にブラウザのオープン時にフィールドの値が1の時にチェックボックスがチェックされた状態で表示させたいと思っています。 $sql="SELECT ID,NAME,CB FROM CASE" $rs=mysql_query($sql$dbHd) $row=mysql_fetch_row($rs) <INPUT type="checkbox" name="ip02" value"<?php print($row[2]) ?>"> 上記のようなINPUTを書いてみたものの、値はとれずの状態です。 どのように書き換えていけばいいでしょうか?
- ベストアンサー
- PHP
- チェックボックス access2003
既存のデータベースからaccessを使って検索を行っています 表示させるテーブルの中でひとつだけ 0と1どちらかが入力されているフィールドがあります それをフォームで表示する際にチェックボックスで表示させたいのですが どのようにすればよいのでしょうか? ご存知の方よろしくお願いいたします
- ベストアンサー
- その他(データベース)
- チェックボックスによる検索
こんばんは。お世話になっております。 PHPにてDB(MySQL)に登録されたデータをチェックボックスのみで検索するスクリプトを組んでおりますが、チェックボックスの数が多数あり、混乱してしまい、お力をお借りしたく投函させて頂きました。 上手く説明できるかどうか判りませんが… まず検索項目として、(複数チェック可) カテゴリ: □ドリンク □グルメ □ケーキ 年齢: □20代 □30代 以上のようなフォームを用意しており、各チェックボックスのnameはDBのフィールドを同じ名前。valueは実際に登録されている数値を記述しています。 そこで、上記チェックボックスにいくつかのチェックを入れ、検索すると、それに該当するものだけを検索結果として一覧表示させたいのですが、現在、全ての項目に当てはまるものと一緒に、1つでも含んだデータまでもが表示されてしまいます。 お忙しい中恐縮ですが、お知恵を頂戴出来ればと考えております。 宜しくお願い致します。 //POSTで受け取ったデータを配列にし、 foreach($arr as $category){ $wherearr1[] = " ( category = '$category' )" } foreach($arr as $category){ $wherearr2[] = " ( age = '$age' )" } $wherestr1 = implode(" OR ",$wherearr1); $wherestr2 = implode(" OR ",$wherearr2); $sql = "select * from member where $wherestr AND $wherestr1 order by date desc"; $result = mysql_query($sql);
- ベストアンサー
- PHP
- ファイルメーカーでのチェックボックスの追加
ファイルメーカー初心者です。 ファイルメーカーProで、フィールド内にチェックボックスを追加する方法を教えてください。雑誌のナンバーを管理しているフィールドで、号数の表示とチェックボックスを追加したいのです。よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- PHP+MySQLの繰り返し処理で…
PHPとMYSQLを使ってWEBページを作っています。 わからないところがあるので、どなたか教えていただけないでしょうか?php5+mysql4.0.1です。 検索フォームから送られてきた条件をもとに、1ページに10件の検索結果を表示しています。表示するのはテーブル1の名前で、ここまではうまくいっています。 例:------------------------------------------ 検索結果 神奈川県 林さん 東京都 遠藤さん 北海道 近藤さん 例:------------------------------------------ このあと、上記クエリの結果が続く限りテーブル2 から名前に該当する趣味を表示したいと思います。 例:------------------------------------------ 検索結果 神奈川県 林さん テニス 東京都 遠藤さん サッカー 北海道 近藤さん 絵画 例:------------------------------------------ この処理を加えると、一ページに10件表示されていたものが最初の一件だけしか表示されなくなってしまいます。whileの中に新たにクエリを書いているからでしょうか…? 以下に問題部分だけ見やすくまとめなおしたソースを書きました。 (1)$sql = "SELECT name,ken FROM tablename where ken=$ken"; $mysql->query($sql); while($row = $mysql->fetch()){ $name = $row[name]; (2)$sql2 = "SELECT syumi FROM tablename2 WHERE name='$name'"; $mysql->query($sql2); while($row2 = $mysql->fetch()){ $syumi = $row2[syumi]; } echo "$ken"."$name"."$syumi"; } わかりづらい説明ですみません。 テーブル1に趣味のフィールドを作ることはできない前提で、このままのDB構造でうまく上記を解決することはできますか? ご指導よろしくお願いします。
- ベストアンサー
- PHP
お礼
ありがとうございます。 こんな方法もあるのですね。 あまり難しいことは考えておらず、只、チェックを外すにはどうしたら良いのだろうっと思って試してみたのですが、解らなかったんです・・。 早速試してみます。