• ベストアンサー

チェックボックスの値処理PHP+MySQL

PHPでMySQLのDB情報をHTML出力して、表の各行にチェックボックスを付けて仮に表がHTMLで10ページあったとして、1ページ目のチェックボックスの値を保存して、ランダムに各ページを見て、また1ページ目に戻るとチェックボックスが保存した状態になっているという事はできるでしょうか? javascriptを組み合わせてでないとムリでしょうか? どなたか教えて下さい。

  • PHP
  • 回答数3
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>チェックをビットでとっとけば省スペースできる #2の方も説明されていますが、一応(それなりの)解説をしますね。 チェックボックスは、チェックされているかいないかだけなので、ビット(2進数で1か0か)で表すことができます。 本来であれば、true,falseのブーリアン型にするのでしょうが、(PHPではサイズは規定されてはいないけれども)多分、あるかないかの情報を保持するのにマシンの基本サイズ(32ビット:4バイト)が使われると思います。 なので、1ページの行数×ページ数×4バイト必要だと思います。 しかし、4バイトあれば(PHPで符号無し整数が使えないとしても)31個のチェックされているかいないかを保持することができます。 なので、例えば1ページの行数が30行だとしたら ページ数×4バイトのサイズで情報を保持できます。 まあ、その辺が省スペースということですね。 ただまあ、直接的ではないので、面倒ではありますが、保持する量が大きくなると(クッキーなど多分セッションも)データが保持できなくなると思いますので、保持するデータが多くなる場合には考えてみる価値はあるかもしれません。 -------------- 設定と取り出し 設定 for($i=0;$i<30;$i++){ if($そのページのチェックボックス[$i]==true){ $チェックリスト[ページ番号] |= pow(2,$i); } } 取り出し for($i=0;$i<30;$i++){ $そのページのチェックボックス[$i]=(0!=$チェックリスト[ページ番号] & pow(2,$i)); } 実際には試してないけど、てな感じかと

その他の回答 (2)

  • GanID
  • ベストアンサー率0% (0/2)
回答No.2

チェックをビットで取るとは、チェックボックスの返答はon又はoffですよね。on=THRU=ビット1/off=FLASE=ビット0になるので、THRUかFLASEでセッションを確保するとの意味と思います。 チェックボックスの値がPOSTバックされた時に値をそのままセッションに確保してHTMLに埋め込む方が楽ですよ。 HTML例) <input type="checkbox" name="post_ck1" value="<?=$_session["ck1"]?>"> php例) $_session["ck1"]=$post_ck1; 複数のページに跨った場合はセッション名の重複に注意しましょう。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

セッションで状態をとっとく 単純な配列でもいいと思うけど チェックをビットでとっとけば省スペースできる

takeya4649
質問者

補足

チェックをビットでとっとけば省スペースできる とはどんな感じでしょうか? よかったら詳しめに教えてください よろしくお願いします。

関連するQ&A

  • PHP、MySQLでチェックボックスの値を各ページでひとつのフラグで保持

    以前の質問の続きです。 PHPでMySQLのDB情報をHTML出力して、表の各行にチェックボックスを付けて仮に表がHTMLで10ページあったとして、さらに共有しているコンテンツが5あったとして、フラグは一つでどのように各コンテンツ間で保存すればよいでしょうか? ビットで保存するというのが今ひとつ分からず、1ページのみだと、値を255と244で切り替えて保存できたのですが。。。表を野球選手、コンテンツをポジュション別といった感じです。 分かりずらいと思いますが、よろしくお願いします。

    • ベストアンサー
    • PHP
  • チェックボックスの値の受け渡し

    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
  • Javascript→PHPに値の渡し方について

    Javascriptで処理した値をPHPでも参照したいのですがどうすればよろしいですか? やりたいこと  Javascriptである値を処理して、その処理した値を  DB(MySQL)の登録する。(PHPで作成) 簡単な文章で申し訳ありませんがよろしくお願いします。

    • ベストアンサー
    • PHP
  • チェックボックスの値のチェック

    プログラム初心者です 質問1 HTMLのフォームのチェックボックスから配列でphpに値を渡したときにチェックした値が1個しかなかった時には配列として受け取っているのでしょうか?それとも一個しかない場合は変数として受けとっているのでしょうか? 現状ではissetで調べて値がある場合にはその配列をforeachで取り出して実行しています(実際にやってみたら値1個でも動いていますが気になったので教えてください) 値のチェックはissetのみでいいでしょうか? 質問2 MySQLの方は、チェックの個数分のレコードを削除するために繰り返し処理の中でsqlを最大20回発行するのはダメな処理ですか?(チェック1個の場合は1回のみsqlを発行しています) 一般的に使われているならこれでいこうと思います よろしくお願いします

    • ベストアンサー
    • PHP
  • PHPでデータベース(mySQL)から値を取りだすには

    PHPで値をmySQLに保存するコードを作成するのに 成功したのはいいのですが、値を取り出して 出力するコードがうまく書けません ネットで調べてみたり、参考書を読んで やっているのですがうまくいきません こういうコードを書いたのですが <?php $conn=mysql_connect("localhost", "user", "pass"); if (!$conn) { die('接続失敗です。'.mysql_error()); } mysql_select_db("database", $conn); mysql_query("SET NAMES 'ja-utf8'", $conn); $sql='SELECT caram, FROM table'; $row=mysql_query($sql, $conn); $res=mysql_fetch_assoc($row); echo htmlspecialchars($res, ENT_QUOTES); mysql_close(); ?> どこが間違っているかご指摘いただけると ありがたいです。

    • 締切済み
    • PHP
  • phpでチェックボックスでの値の表示について

    HTMLで作成したテキスト、セレクト、チェックボックスなどに、選択されたもの全てをPOST送信で受け取って PHPにてパラメータをチェックしてから 確認画面(HTML)に表示してPHPにてDB登録するというプログラムを作ってます。 HTML側で <input type="checkbox" name="genre[0]" value="1" >国語 <input type="checkbox" name="genre[1]" value="2" >算数 <input type="checkbox" name="genre[2]" value="3" >理科  <input type="checkbox" name="genre[3]" value="4" >社会 として例えば、 <?php $genre = $_POST["genre"]; foreach ($genre as $key => $value){ print($value); } ?> で表示するとチェックした数字が表示されます。 (国語をチェックした場合 1) これを 国語 と表示させるにはどうすればいいんでしょうか? DBに登録する際は数字でいいんですが。

    • ベストアンサー
    • PHP
  • 複数のチェックボックスの値を書き込む方法

    複数行のチェックボックスの値をそのまま 書き込みたいのですが・・・ .datファイル↓ 1234,1 5678,0  3456,1 7890,0 上記をHTMLとして出力。 1→checkedで出力されるとします。 チェックを入れて、 7890,0 ↓ 7890,1 にするとそれを1行として保存されるようにしたい です。 チェックボックスは同じ名前のためform('check') などで値を取り出したとしても最後の値しか 値を取り出せないでしょう。 画面に複数出た行を全部.datファイルに書き込むには どうすればよいのでしょうか? http://www.futomi.com/lecture/form/cgi-pm.html ↑を参照しましたが、チェックの値は@配列で 取れるような気がしましたが、1行を書き込む 方法がわからないので詳しく教えていただければ 幸いです。 言葉だけよりソースがあるとわかりやすいですm(__)m

    • ベストアンサー
    • Perl
  • PHP・MYSQLでチェックボックス取得方法

    初めまして。PHP・MYSQL の初心者で只今勉強中なのですが、 HTMLで選択するかしないかの二択のチェックボックスを作成して、PHPを利用しMYSQLに チェックがあれば'true'なければ空白もしくは'false'を取得したいのですが、チェックを外した場合に MAMPのローカルでプレビューすると画面上部に 「Notice: Undefined index: mailMagazine in /Applications/MAMP/htdocs/AAAAA/XXXXX.php on line 15」 と表示されてしまいます。このエラーを解除するにはどのようにしたらよいでしょうか? 【HTML】 <form id="member" method="post" action="xxxxx.php"> <input type="checkbox" name="mailMagazine " id="mailMagazine" value="true" checked="checked" /> <label for="mailMagazine">メールマガジンを配信希望</label> </form> 【PHP】 <?php mysql_connect ('localhost', 'root', 'root') or die (mysql_errpr()); mysql_select_db ('mail'); mysql_query ('SET NAMES UTF8'); $sql = sprintf ('INSERT INTO member SET mailMagazine="%s", created="%s"', mysql_real_escape_string ($_POST['mailMagazine']), date ('Y-m-d H:i:s') ); mysql_query ($sql) or die (mysql_error()); ?> 【MYSQL】 データ型(種別):enum('true') デフォルト値:NULL となっています。 また、MYSQL についてなのですが、このような場合はデータ型(種別)はenumとset のどちらが正しいのでしょうか? もし分かる方がいらっしゃいましたら、何卒ご教示いただきますよう宜しくお願い致します。

    • ベストアンサー
    • PHP
  • チェックボックスの値

    チェックボックスの値を取得する方法を調べています。 サイトの例では、チェックボックスが全てTformという同一のフォーム内にあります。これが仮に異なるフォームにある場合、どのように処理したらいいのでしょうか? http://musashisakai.chiikihp.net/master/java/checkbox1.php#2 Tform1 Tform2 Tform3 Tform4 にそれぞれチェックボックスがある場合です。 もし分かる方がいましたら教えてください。 よろしくお願いします。

  • iframeで読み込んだ別のphpファイルの値を得る方法を教えて下さい

    目的: a.phpからiframeとしてb.phpを読み込む そこでb.phpのチェックボックスの値をa.phpで得る方法はありますでしょうか。 こんなことをする理由は、 表形式でデータを表示したいというのがありまして。 しかし、列数が大変多い為、a.php内に表示すると 1つ1つの項目の幅がとても小さくなってしまいます。 そこで、その表をb.phpで作成し、iframeタグで読み込むということをしています。 そうすればa.php内に横スクロールバーが表示され、表の各項目は適切な幅で表示されます。 ただ目的は、その表の各行にチェックボックスを付けて、行を選択したいのです。 という訳で、a.phpからb.phpのチェックボックスの値を得るなんてことがphpで可能かを教えて下さい。 宜しくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう