2012-05-07 32 views
0

私はこれをどこからでも見たようです。ここ配列を使ってforeachループでMySQLデータにPHP変数を設定する

はiは、MySQLデータベース

$PartNo=mysql_result($result,$i,"PartNo"); 

$result = mysql_query("SELECT * FROM PriceList"); 

$i = 0からのデータの部分に変数を設定するために使用するコードは、1によって私のwhileループ毎に追加されます再起動
PartNoはMy MySQLテーブルのフィールド名で、変数名もデータベースに設定したい
PriceListは私のデータベース名

すべてのフィールド名(配列にはそれらがあります)をループし、同じ名前の変数をそのデータに設定します。このように:

$PartNo=mysql_result($result,$i,"PartNo"); 
$Group=mysql_result($result,$i,"Group"); 
$OnHand=mysql_result($result,$i,"OnHand"); 
$QOO=mysql_result($result,$i,"QOO"); 
$Description=mysql_result($result,$i,"Desc"); 
$Cost=mysql_result($result,$i,"Cost"); 

しかしforeachループでは、それほどコードではありません。私は上のアウトを評価するために、「$$X」必要

$nDatabaseVars=array("PartNo","Group","OnHand","QOO","Desc","Cost"); 

foreach ($nDatabaseVars as $X) { 
    $$X=mysql_result($result,$i,'$X'); 
} 

を、私はこのような何かを考えていたが、それは私が(などparse_str、evalを、EXEC、)それについて移動方法に関係なく実行されません

最初の繰り返しで$ PartNo =に変更され、最初の行のデータベースにあるデータには $PartNoが設定されます。 ($ PARTNO = mysql_result($結果、$ I、」実行

foreach ($nDatabaseVars as $X) { 
    echo "$$X=mysql_result($result,$i,'$X')"; 
} 

私はそれは私が必要とする正確に何を言うために得ることができます:mysql_result($result,$i,"PartNo")

私が代わりにそれをエコーし​​た場合:この部分が何であるかどれPartNo ");)実際には変数セットを取得しません。

答えて

2

"$X"を含む文字列を、列名ではなくmysql_resultに渡しています。単一引用符を削除します。

$$X=mysql_result($result, $i, $X); 
+0

伝説を、あなたの両方に感謝。私は完全な間違った場所を探していた。 –

0
$$X=mysql_result($result,$i,'$X'); // these single quotes around $X avoid your actual string to be used. 

$$X=mysql_result($result,$i,"$X"); 
関連する問題