0

フォームからのデータを文字列として保存し、各回答をパイプで区切って保存することを考えています。私が抱えている問題は、いくつかの答えが複数の項目の形で来るかもしれないということです. ラジオボタンの選択を対応する回答とともに保存します。

Question 1 - 1 Answer [A1]
Question 2 - Radio button selected [A2] + 3 form fields
Question 3 - 1 Answer [A3]

だから私は次のようなデータを保存することを考えていました:

$str = A1|A2[x,x,x]|A3

複数の選択肢を括弧で囲むことにした理由は、それを質問に関連させるためです。

私の解決策はうまくいくと思いますが、データベースから値を読み取るときは、Php を使用explode()して値を配列に取得します。

例えばexplode("|",$str);

あげる:

array(0=>A1, 1=>A2[x,x,x],2=>A3);

これを開発する前に、 のコンテンツを取得し[x,x,x]てから分離する最良の方法は何でしょうarray[1]か?

どんな提案でも大歓迎です。

ありがとう

4

4 に答える 4

0

あなたのアプローチは何の利益ももたらさず、不必要な複雑さをもたらします。リレーショナル データベースを使用して、各データを個別のテーブル行に格納してみませんか? MySQL または同様の DBMS にアクセスできない場合は、いつでもSQLiteを使用できます。

于 2010-02-17T12:07:53.773 に答える
0

serializeunserializeを確認する必要があると思います。

于 2010-02-17T12:10:23.457 に答える
0

または、答えを文字列として持ってから配列に変換しようとするのではなく、配列でそれらを開始してから、必要に応じてそれらを文字列に変換することができます。

$array = array('A1',array(x,x,x),'A3');

次に、文字列として必要な場合は、次のように呼び出すことができます。

$str = serialize($array);

そうすれば、文字列を分解した後、同様の方法でソリューションにアクセスできますが、A2[1,2,3] 文字列をさらに分割しようとする必要はありません。代わりに配列。

于 2010-02-17T12:14:14.870 に答える