使用数组在foreach循环中将PHP变量设置为MySQL数据

时间:2012-05-07 14:22:12

标签: php mysql variables foreach

我似乎到处寻找这个。

以下是我用来将变量设置为MySQL数据库中的一段数据的代码

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

哪里

 $result = mysql_query("SELECT * FROM PriceList"); 
每次我的while循环重新启动时,

$i = 0都会加1   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($ result,$ i,“PartNo”);)但实际上并没有得到变量集。

2 个答案:

答案 0 :(得分:2)

您正在将包含"$X"的字符串传递给mysql_result,而不是列的名称。删除单引号:

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

答案 1 :(得分: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");