0

global_settings2列で呼び出されるテーブルがあります(field, value)

各行を変数にする方法が必要です

たとえば、次のようになります。

でありfield = titlevalue = hello私は必要です:

$title = 'hello';

私はこれをやってみました:

$global_sql="SELECT * from global_settings ";
$global_rs=mysql_query($global_sql,$conn) or die(mysql_error());
while($global_result=mysql_fetch_array($global_rs))
{
    $global_sql2="SELECT * from global_settings where field =  '".$global_result["field"]."' ";
    $global_rs2=mysql_query($global_sql2,$conn) or die(mysql_error());
    $global_result2=mysql_fetch_array($global_rs2);

    $global_result2["field"] = $global_result2["value"];
}

しかし、それはうまくいきませんでした - 何かアイデアはありますか?

4

2 に答える 2

4

DB から変数を自動作成しないことを強くお勧めします。スクリプトの名前空間に不要な変数を散らかし、おそらく別の変数を上書きしてしまいます。そのままにしてください-設定を配列に保存します。

さらに、私があなたのコードを完全に読み違えていない限り、サブクエリの理由はまったくありません。シンプルな:

$settings = array();
$sql = "SELECT field, value FROM settings"
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
   $settings[$row['field']] = $row['value'];
}

すべての設定を取得するために必要なのはそれだけです。

于 2013-07-26T19:46:36.057 に答える
0

この行は、 の値にちなんで名付けられた変数を作成しませんfield

$global_result2["field"] = $global_result2["value"];

たとえば、次のように配列変数を作成できます。

$array_of_results[ $global_result2["field"] ] = $global_result2["value"];

このようにして、次の配列が得られます。

[ 'field' => 'value' ] 
于 2013-07-26T19:47:08.747 に答える