Domanda

sto pensando di memorizzare dati da un modulo come stringa, ogni risposta separati da un tubo. Il problema che ho è che alcune risposte possono venire in forma di più elementi. Memorizziamo il pulsante di selezione con i loro corrispondenti risposte es.

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

Quindi stavo pensando di memorizzare i dati come:

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

Il motivo ho scelto di racchiudere selezioni multiple tra parentesi è per averlo riferisce alla domanda.

Credo che la mia soluzione funziona, ma quando vengo a leggere i valori dal database userò explode() di PHP per ottenere i valori in un array.

es. explode("|",$str);

Darà:

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

Prima di sviluppare questo, quale sarebbe il modo migliore di ottenere il contenuto di [x,x,x] e separandolo dal array[1]?

Ogni suggerimento sarà molto apprezzato.

Grazie

È stato utile?

Soluzione

In alternativa, piuttosto che avere le tue risposte sotto forma di stringa poi cercando di trasformarli in un array si potrebbe iniziare con loro in una matrice, allora se avete bisogno di trasformarle in una stringa, quindi si potrebbe avere:

  

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

Poi, se si ha bisogno come una stringa si può chiamare:

  

$ str = serializzare ($ array);

In questo modo, si ottiene un metodo simile di accesso alla soluzione dopo aver esploso la stringa, solo tu non hai a che fare con il tentativo di dividere la A2 [1,2,3] stringa ulteriormente come si può solo controllare se si tratta di un array, invece.

Altri suggerimenti

Il tuo approccio non fornisce alcun beneficio e introduce una complessità non necessaria. Perché non basta usare un database relazionale e memorizzare ogni pezzo di dati a in una riga di tabella separata? Se non si ha accesso a MySQL o un DBMS simili, si può sempre usare SQLite .

Credo che avete bisogno di dare un'occhiata a serialize e unserialize .

Si può anche memorizzare le informazioni come un array associativo codificato in JSON con funzione json_encode (). Poi, quando si recupera i dati dal database, si dovrebbe solo fare:

$ arr = json_decode ($ value);

http://php.net/manual/en/function.json -encode.php

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top