【问题标题】:Set PHP variable to MySQL data in foreach loop using array使用数组在foreach循环中将PHP变量设置为MySQL数据
【发布时间】:2012-05-07 14:22:11
【问题描述】:

我似乎到处寻找这个。

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

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

在哪里

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

$i = 0,每次我的 while 循环重新启动时加 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");) 但实际上并没有得到变量集。

【问题讨论】:

    标签: php mysql variables foreach


    【解决方案1】:

    您将包含"$X" 的字符串传递给mysql_result,而不是您的列名。去掉单引号:

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

    【讨论】:

    • 传奇,谢谢你们。我找错地方了。
    【解决方案2】:
    $$X=mysql_result($result,$i,'$X'); // these single quotes around $X avoid your actual string to be used.
    
    $$X=mysql_result($result,$i,"$X");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 2017-05-22
      • 2023-03-24
      • 2021-09-07
      • 2023-03-06
      相关资源
      最近更新 更多