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

时间:2016-05-10 19:20:24

标签: php

我有一个查询,我遍历其结果以显示表中的记录,这很正常。

我的表有5列:RecID,名称,反馈,分数和产品。

如您所见,下面的循环将列出所有5列。我想要做的只是列表中的列4:名称,反馈,分数和产品,但将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";
    }
?>

2 个答案:

答案 0 :(得分:3)

请勿使用循环显示列,只需使用$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";
}
?>

答案 1 :(得分:1)

您可以修改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 documentation中使用它们。