Question

Je pense à stocker des données à partir d'une forme comme une chaîne, chaque réponse séparés par un tuyau. Le problème que j'ai est que certaines réponses peuvent se présenter sous la forme de plusieurs éléments. Nous stockons le bouton radio sélection ainsi que leurs réponses correspondantes par exemple.

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

Je pensais à stocker les données comme:

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

La raison pour laquelle j'ai choisi de joindre plusieurs sélections entre parenthèses est pour avoir trait à la question.

Je pense que ma solution fonctionne, mais quand je viens de lire les valeurs de la base de données que je vais utiliser la explode() de Php pour obtenir les valeurs dans un tableau.

par exemple. explode("|",$str);

Donnera:

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

Avant de développer ce, quelle serait la meilleure façon d'obtenir le contenu de [x,x,x] et la sépare de array[1]?

sera très appréciée Toute suggestion.

Merci

Était-ce utile?

La solution

Sinon, plutôt que d'avoir vos réponses en tant que chaîne puis essayer de les tourner vers un tableau, vous pouvez commencer avec eux dans un tableau, alors si vous avez besoin de les transformer en une chaîne, de sorte que vous pourriez avoir:

  

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

Alors si vous en avez besoin en tant que chaîne vous pouvez appeler:

  

$ str = sérialiser ($ array);

De cette façon, vous obtenez une méthode similaire d'accès à votre solution après avoir explosé la chaîne, que vous ne devez pas traiter à essayer de diviser la chaîne A2 [1,2,3] plus que vous pouvez juste vérifier si elle est un tableau à la place.

Autres conseils

Votre approche ne fournit aucun avantage et il introduit une complexité inutile. Pourquoi ne pas simplement utiliser une base de données relationnelle et stocker chaque élément de données un dans une ligne de table séparée? Si vous n'avez pas accès à MySQL ou un SGBD similaire, vous pouvez toujours utiliser SQLite.

Je pense que vous devez jeter un oeil à serialize et unserialize .

Vous pouvez également stocker les informations sous forme de tableau codé en JSON avec fonction json_encode (). Puis, quand extraire des données de la base de données, vous suffit de faire:

$ arr = json_decode ($ value);

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top