2017-01-16 12 views
-2

私は、1つの配列にたくさんのデータを入れて、それをMySQLデータベースに入れる方法を探しています。私は配列を作成し、JSONを使ってそれをデータベース上のセルに入れることが推奨されています。しかし、私はそうする方法が不明です。私がこのようにしている理由は、データベーステーブルに30以上の不要な列を持たないことです。それがついているウェブサイトは、小枝を使用しています。配列をJSON形式でSQLデータベースに入れる方法は?

配列が保持するデータは、ユーザーが質問に「はい」または「いいえ」と答えたかどうか、もう1つはユーザーが「いいえ」と答えた理由です。

誰かが私に何をする必要があるかの例を私に与えることができれば、それは素晴らしいことでしょう。ご質問がある場合はお尋ねください。

問題をさらに詳しく見てみると、質問のための多くの必要性を減らし、質問を少なくすることができることがわかりました。これには、JSONを使用する必要があります。

プログラムはPHPを使用して作成されています

+0

あなたはJSONの配列をコード化するために、 'json_encode()を'使用することができます(私は以来、PHPを仮定しているそのあなたが使ったタグ)。 http://php.net/manual/en/function.json-encode.php – Kisaragi

+0

これは、小枝を使用して配列を作成する方法です。私も同様に助けが必要です。 – UnknownPerson

+0

さて、私はおそらく私はそう思う。あなたは何の配列をしたいですか?あなたはデータをループしていますか?テキストを解析しますか?これはあまりにも曖昧です。 – Kisaragi

答えて

0

これはあなたの質問にお答えします。私は似たようなことに取り組んでいます。

// Sample JSON where student has diploma. 
{ 
    "High_School": "American High School", 
    "HS_Diploma": true, 
    "HS_Diploma_date": "30-JUN-1997" 
} 

// Sample JSON where student does not have diploma. 
{ 
    "High_School": "American High School", 
    "HS_Diploma": false, 
    "HS_Diploma_date": null 
} 

$diploma = false; // Set default to false. 
$diploma_date = null; // Set default data to null. 

// Get Radio button 'diploma' which is set to 1 for yes. 
if ($form->get("diploma")->getData() == 1){ 
    $diploma = true; // Set boolean to true for yes. 
} 
if($diploma){ // If above boolean is true, student has HS diploma 
    $diploma_date = $form->get("diploma_date")->getData(); // So get the date. 
} 

// Creates a PHP array. 
$high_school_array = array(
    "High_School" => $form->get("high_school")->getData(), 
    "HS_Diploma" => $diploma, 
    "HS_Diploma_date" => $diploma_date->format('d-M-Y') 
); 

// Encode to JSON and set in Entity (here called $app), where setHSInfo() is the $app Entity 
// function that takes in a string (JSON encoded). 
$app->setHSInfo(json_encode($high_school_array)); 

// Store to database. 
$em->persist($app); 
$em->flush(); 

次にコントローラに、データベースから取得するには、JSONをデコードして、どこすることができますあなたの小枝ファイルを に渡す必要があります簡単に使用してください:


// Where getAppHSInfo function returns the $high_school_array encoded array above from the db. 
return $this->render('viewHSDetails.html.twig', array(
     'hs_json' => json_decode($app->getAppHSInfo(), true), 
)); 

そして、小枝ファイルで、あなたは簡単にそれを使用することができます:

Education Information:<br/> 
High School attended: {{ hs_json['High_School'] }}<br/> 
{% if hs_json['HS_Diploma'] %} 
    Diploma Yes - Date: {{ hs_json['HS_Diploma_date'] }} 
{% else %} 
    Diploma No 
{% endif %} 
関連する問題