2017-07-28 6 views
0

MySqlデータベースからたくさんのデータ文字列を収集しています。データはウェブサイトのさまざまな場所で使用する必要があります。だから私はデータベースから収集された各文字列を自分自身の変数に割り当てることを望みます。同じコードを何度も何度も繰り返し書きたくはありません。したがって、私はすべての文字列を収集し、プロセス内の特定の変数を作成するために配列を使用したいと思います。以下は私が持っているものです。上記で配列を使用してMySqlからデータを収集し、変数を作成する

$tableName = "fruits"; 
    $variablesArray = array(
        "Apple",    
        "Banana", 
        "Coconut",   
    ); 

    foreach($variablesArray as $val) { 
     $query = "SELECT * FROM {$tableName} WHERE ID = '{$val}'"; 
     $result = mysqli_query($conn, $query) or die('error'); 
     while($data = mysqli_fetch_array($result)) { 
     For ($n = 0; $n < 1; $n++){ 
      ${'$val'} = $data["COLORS"]; 
     } 
     } 
     echo ${'$val'}; 
     echo "</br>"; 
    }   

、私は私のデータベースからデータを収集するために、アレイ内のデータベースのIDを使用しています。これは "グリーン"、 "イエロー"、 "ブラウン"をエコーし​​ます。

  • $アップル= "グリーン"
  • $バナナ= "イエロー"
  • $ココナッツ= "ブラウン"
:私はしかし、希望は何

は、三つの変数を作ることです

上記のコードはこれらを作成しません。私はこれを達成するために$ {'$ val'}を使う方法がわかりません。私は連想配列の作成も試みましたが、私が望むものを得ることができませんでした。私はここの誰かが私に正しい方向を向けることを望んでいました。ありがとう!

+1

テーブルに文字列IDが含まれていますか? –

+2

これらの変数をロードするクラスを作成する必要があります。次に、変数の束でグローバルスコープを乱雑にするのではなく、同じクラスインスタンス(すでにインスタンス化の変数をロードしている)を注入することができます。 –

+1

ユーザーダブルドラー。 $$ val = $ data ["COLORS"];とecho $$ val –

答えて

1

あなたの問題は、(必ずしも一つだけ)にもなりますあなたの変数は文字通り'$val'

使用$$val

${"$val"};と呼ばれているように、単一引用符文字列は、変数の解析を行いません${'$val'};

にあり二重引用符で囲まれた文字列は変数を解析するために有効です。しかし、このような単純なケースでは、$valは既に文字列であるため、引用符を使用する必要はありません。文字列の他の部分がないので、中括弧を使用する必要はありません。

関連する問題