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


Set PHP variable to MySQL data in foreach loop using array

我似乎到处寻找这个。

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

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

哪里

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

$i = 0 ,每次我的 while 循环重新启动
时都会增加 1 PartNo 是我的 MySQL 表中的字段名称,也是我想将数据库中
的数据设置为 价目表是我的数据库名称

我想遍历所有字段名称(数组包含它们(并为该数据设置具有相同名称的变量。喜欢这个:

$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"(;)但实际上并没有获得变量集。

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

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