从foreach循环中的特定列获取值


Get Value From Specific Column In foreach Loop

我有一个查询,并循环其结果以显示表中的记录,这很好。

我的表格有5列:RecID、Name、Feedback、Score和Product。

正如您所看到的,下面的循环将列出所有5列。我只想列出其中的4列:Name、Feedback、Score和Product,但将RecID存储到一个名为$RecID的变量中。然后,我将使用Delete链接中的$RecID调用Ajax函数,根据ID删除记录。

如何排除显示中的特定列,并捕获RecID值以存储在变量$RecID中?

<?php
    while($dataArray = mysql_fetch_array($queryexe, MYSQL_ASSOC))
    {
        echo "<tr>'n";
        foreach ($dataArray as $col_value) {
            echo "'t<td>$col_value</td>'n";
        }
        //echo "<td><a onclick('deleteRecord(" + $recID + ")'>Delete</a></td>";
        echo "</tr>'n";
    }
?>

不要使用循环来显示列,只需使用$dataArray['colname']直接访问所需的字段即可。

<?php
while($dataArray = mysql_fetch_array($queryexe, MYSQL_ASSOC))
{
    echo "<tr>'n";
    echo "<td>{$dataArray['Name']}</td><td>{$dataArray['Feedback']}</td><td>{$dataArray['Score']}</td><td>{$dataArray['Product']}</td>";
    echo "<td><a onclick('deleteRecord({$dataArray['RecID']})'>Delete</a></td>";
    echo "</tr>'n";
}
?>

您可以修改foreach循环以获取列名及其值。然后,在循环中,您可以检查所需的特定列名,并对其进行不同于其他列名的处理。

while($dataArray = mysql_fetch_array($queryexe, MYSQL_ASSOC)) {
    echo "<tr>'n";
    foreach ($dataArray as $col_name => $col_value) {
        if ($col_name == 'RecID') {
            echo "<td><a onclick('deleteRecord(" . $col_value . ")'>Delete</a></td>";
        } else {
            echo "'t<td>$col_value</td>'n";
        }
    }
    echo "</tr>'n";
}

您可以阅读foreach的两种不同语法之间的差异,以及在PHP文档中应该如何使用它们。