2016-11-16 5 views
0

データベースに設定テーブルを作成しました。設定に基づいて変数に値を割り当てたいと思います。どうすればよいかわかりません。配列から変数を代入する

テーブル:設定

id | setting  | value 
1 | setting_one | value_one 
2 | setting_two | value_two 
3 | setting_three | value_three 

クエリ

if ($result = $db->query("SELECT * FROM settings")) { 
    while($row = mysqli_fetch_assoc($result)) { 
     $SettingOne = $row['setting_one']; 
     $SettingTwo = $row['setting_two']; 
     $SettingThree = $row['setting_three']; 
    } 
} 
+1

個別の変数に設定する理由はありますか?あなたはちょうど配列を持ち歩くことができ、キーでその配列にアクセスすることができます。 – nerdlyist

+0

$ set_one = 'value_one'; ' – JustOnUnderMillions

+0

のようなものを得るには、' $ {$ row ['setting']} = $ row ['value']; 'を実行してください。新しい変数 – JustOnUnderMillions

答えて

0

ます3行を返します。選択は、あなたのテーブルと仮定すると、あなたはしばらくの結果を処理しているなぜそれ にのみ3行を持っていますlop。

$rowには、クエリで選択した列の形式でAssoc配列が含まれます。この場合

あなたがSELECT *を使用するよう$row配列が3 occurances

id, setting, value 

が含まれていますので、あなたのループは、これはあなただけを想定して、あなたの出力の3行を生成します

if ($result = $db->query("SELECT * FROM settings")) { 
    while($row = mysqli_fetch_assoc($result)) { 
     $id  = $row['id']; 
     $setting = $row['setting']; 
     $value = $row['value']; 

     echo "The id = $id, the setting = $setting, the value is $value <br>"; 
    } 
} 

のようになります。あなたのテーブルに3行あります

+0

さて、私は今そこに2つの設定があるとしましょう。 id = 1、setting = setting_timezone、value = America/New_York id = 2、setting = setting_static_ip、value = false どのように設定値を変数に割り当てるのですか? $ SettingTimezone = setting_timezone $ SettingStaticIP = setting_static_ip – Robert

0

私はそれを考え出し、ちょうど行['設定']をそれぞれの$設定としてエコーします:)

if ($result = $db->query("SELECT * FROM settings")) { 
    while($row = mysqli_fetch_assoc($result)) { 
     $key = $row['setting']; 
     $$key = $row['value']; 
    } 
$result->free(); 
$result->close(); 
} 
関連する問題