Php 从单个While循环创建多个变量并执行它

Php 从单个While循环创建多个变量并执行它,php,Php,我一直在努力做到以下几点: 我将主题存储在数据库中,用逗号分隔,形成一个数组。 然后,我运行一个foreach循环,以在对象被分解后获取它们。 我遇到的问题是,我试图基于主题名称创建变量,然后运行mysqli代码,该代码将根据我应该设置的主题名称从DB中的另一个表中派生信息 我尝试过使用eval,它在运行代码时不会显示任何内容 $hwvar = ""; $hwsubject = ""; foreach ($hwarray as $hwvar) { eval("$hwvar = $row"

我一直在努力做到以下几点: 我将主题存储在数据库中,用逗号分隔,形成一个数组。 然后,我运行一个foreach循环,以在对象被分解后获取它们。 我遇到的问题是,我试图基于主题名称创建变量,然后运行mysqli代码,该代码将根据我应该设置的主题名称从DB中的另一个表中派生信息

我尝试过使用eval,它在运行代码时不会显示任何内容

$hwvar = "";
$hwsubject = "";
foreach ($hwarray as $hwvar) {
    eval("$hwvar = $row".""."['$hwvar']");            
}
?>
    <td><?php echo $hwvar; ?></td>
因此,我需要循环为每个项目生成以下内容:$sujectname循环是从数据库存储和派生的内容,例如homework1
$subjectname=$row['$subjectname']

如果只是在循环内部输出,那么eval是一个危险的函数,对坏人来说是非常简单和安全的

foreach ($hwarray as $hwvar) {
    $dat = $row[$hwvar];
    echo "<td>$dat</td>";
}
?>

向我们展示您开始使用的数据以及您对其所做的操作。请你建议把这个放在循环里,忘掉所有这些评估的废话。正如您现在所看到的,输出只会得到数组中的最后一个数据项。如果您做了一些灾难性的错误,从用逗号分隔的存储主题到创建不同的变量,那么eval就是错误的。在php和mysql出现之前,告诉我们您的初始目标是一项现实生活任务,并获得正确的方法来执行存储在数组中的数据,如下所示:homework1,homework2。我在foreach上使用了爆炸和提取。现在的问题是我需要让它显示以下内容:$homework1=$row['homework1'];但是对于数组中的每个结果,然后能够将其回传到TableIs中,$hwvar的值需要用于从数据库中的另一个表收集数据。因此$hwvar在数组中具有homework1和homework2的值。然后我需要它来创建这个字符串$hwvar=$row['$hwvar'];要提取数据库中的数据,该数据库的列名为homework1,另一列为homework2。然后在表格中显示数据好的,我不是从原始问题中得到的。我的修正案能满足你的要求吗?它不能把数据从数据库中取出。这就是它应该执行的逻辑:数组值是homework1,homework2我需要从该数据运行以下代码:$homework1=$row['homework1']$家庭作业1=$row['homework2'];我需要在阵列中执行此操作,以防更多的项目添加到阵列中。它仍然不起作用。整个代码已经在while数组中运行。然后向我们展示所有相关的代码,然后我们可以更好地帮助您
// dummy database result containing 2 result rows
$rows = [['home'=>'100', 'home2'=> '200'],['home'=>'300', 'home2'=> '400']];

// yoour list of required columns
$hwarray = ['home','home2'];

// loop over the query resultset 
// your code might be a while loop over a fetch like
// while ($row = $result->fetch_assoc()){
// for example

foreach ($rows as $row){
    foreach ($hwarray as $hwvar) {
        echo "<td>$row[$hwvar]</td>";
    }
}