2012-05-07 26 views
0

我似乎已到處尋找這個。在使用數組的foreach循環中設置PHP變量爲MySQL數據

這裏是我使用從MySQL數據庫

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

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

$i = 0,通過每次1我的while循環添加到設定爲一塊的數據的變量的代碼重新啓動
PartNo是我的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循環,所以它沒有那麼多的代碼。
我在想這樣的事情,但它不會執行,無論我走得差不多了(parse_str,EVAL,EXEC,等等)的方式

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

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

我需要「$$X」來評價出等第一次迭代時,它將更改爲$ PartNo =,然後將$PartNo設置爲第一行數據庫中的任何數據。這也正是這一部分是:mysql_result($result,$i,"PartNo")

如果我贊同它,而不是:

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

我能得到它說我需要執行什麼($ PARTNO = mysql_result($結果,$ I」 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"); 
相關問題