スレッド表示 | フラット表示〕 全トピック 920 件中 181 番目 次≫ ≪前

携帯サイトで一問一答クイズ

created: 2006-10-02 22:20 | modified: 2006-10-12 16:38 | reply: 5

[3387] 携帯サイトで一問一答クイズ

user: Pooh | created: 2006-10-02 22:20
はじめまして、Pooh と申します。

現在、携帯サイトで一問一答クイズをするべく
PHP(4.2.3)+MySQL <レンタルサーバ の環境にて悪戦苦闘しております。

ど素人の私が考えた方法は
1.MySQLに問題解答DBを作成
2.ユーザーからの指定に合わせて問題を抽出し、これを1問ずつ、または5問ずつ表示。
3.最後に正答数・正答率・誤答一覧をまとめて表示
なのですが・・・

2で、例えばDBに1000問あって、
そこから100問を抽出し、
5題ずつ出題するとして
抽出した100問の扱いに困っています。

配列変数に格納すると次への受け渡しができず
MySQLに一時保存をすると、ユーザーが最後までちゃんと継続してくれる確証がないため
MySQL上の一時データを消去するタイミングがありません。

しかたなく、現在はInputタグをHIDDEN属性にして格納してPOSTにて受け渡しをしていますが
これだとパケット量が膨大になる上に、抽出問題数が多いと転送不能になってしまいます。

DB内の問題をまんべんなく実施したいので、抽出数を制限することはできません。

あれこれ検索をしてみましたが、何分にも問題点が非常に抽象的であるため、上手くヒットしません。
参考になりそうなサンプルを見つけることもできませんでした。


私の手法が悪いのか
そもそもPHP+MySQLでやろうとすること自体が間違っているのか
等など
お気づきの点を何でも示唆いただければ幸いです。

独学ゆえに、用語等の間違いがあるかもしれませんが、ご容赦ください。

以上、長文・乱文ではありますが、ぜひぜひよろしくお願いします。
reply: 3388 返信 編集 削除

[3388] セッションの利用

user: ぱぴよん | created: 2006-10-03 10:20
Poohさん、こんにちは。

セッションを利用されてはいかがでしょうか。
セッションであれば、サーバ側で一時的にデータを保持してくれます。

携帯サイトということですので、クッキーが使えるか分からないので
URLにGETパラメータでセッションIDをつける形になると思います。
Parent: 3387  reply: 3389 返信 編集 削除

[3389] お礼

user: Pooh | created: 2006-10-03 15:02
ぱぴよんさん はじめまして こんにちは
ご返答をありがとうございました。

なるほど セッションにはそういう機能があるのですね。

大きな糸口をありがとうございました。
早速挑戦してみます。
Parent: 3388  reply: 3405 返信 編集 削除

[3405] セッション変数について

user: Pooh | created: 2006-10-11 22:18
こんばんは、Poohです。

ぱぴよんさんにセッションの利用を示唆していただき、
その後自分なりに色々と見て、セッションを利用したものを形にできたのですが、
問題数が多くなるとやはり通信が重くなります。

私が利用しているレンタルサーバでのセッションの設定では
セッション変数はファイルに一時保存される設定になっており
そこに、数個の情報用変数と問題数分の問題用変数を作成しました。

情報用の変数は適宜、問題用の変数はページ毎に1問ないし数問ずつ読みにいくようにしました。
最初にセッション変数へ問題を全部登録するときに重くなるのは仕方がないとして、
次から1問ないし数問ずつ表示する際にも重いです。
実験したときのセッション変数の数は、約1600個です。
この際、問題用のセッション変数を全部参照することなく
必要な部分だけを参照するようにしてあります。

実際の行動としては、ページが切り替わるごとに
全セッション変数をクライアント(携帯)の方へ読み込んでいるのでしょうか?

もしそうだとすると「重い」という問題点もさることながら、
大変なパケット量になってしまいますよね・・・
Parent: 3389  reply: 3407 返信 編集 削除

[3407] 重たい原因

user: ゆうじ | created: 2006-10-12 00:30
Poohさんこんばんわ。ぱぴよんさん毎度です。
あとから失礼します。

全セッション変数をクライアント(携帯)の方へ読み込んでいるのでしょうか?

サーバと携帯間で受け渡しされるのはセッションIDのみで、
全セッション変数が渡されることはありませんのでご安心下さい。
重たい原因は別なところだと思います。

バッファリング関数(ob_startなど)を使えば、
おおよそですが出力されるデータ量も拾えます。
また、サーバでの実行時間を測ってみると
サーバ側の負荷度合いがだいたいわかりますので、
原因究明になにか役立つと思います。


あと、私の感覚的なものですが、
セッションに約1600個って、結構多いなと感じます。
データ量の多い問題文などははずして、
問題文を特定するIDと、その解答だけにすれば、
200個+α に減らせるので、試してみる価値はあるかもしれません。
Parent: 3405  reply: 3409 返信 編集 削除

[3409] セッション変数 お礼

user: Pooh | created: 2006-10-12 16:38
こんにちは、Poohです。
ゆうじさん、回答をありがとうございました。

全セッション変数を毎度読み込むことはないとの
情報をいただき、一安心しております。


>バッファリング関数(ob_startなど)を使えば、・・・以下略

新しい勉強材料を提供していただき、ありがとうございます。
早速勉強をしてみたいと思います。


>あと、私の感覚的なものですが、
>・・中略
>200個+α に減らせるので、試してみる価値はあるかもしれません。

なるほど そうですか。
IDから各問題ごとに問題をDBに読みに行くと、
記述が多くなりファイルサイズが大きくなるかと思い
わざとやめていたのですが、これも試してみたいと思います。


以上ありがとうございました。
Parent: 3407  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 181 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑