【问题标题】:Get Value From Specific Column In foreach Loop从 foreach 循环中的特定列获取值
【发布时间】:2016-05-10 19:20:23
【问题描述】:

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

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

如您所见,下面的循环将列出所有 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";
    }
?>

【问题讨论】:

  • $col_value['column_name']

标签: php


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 这个方法也可以,谢谢。但是,我很难将删除链接对齐到最后一列。有什么建议吗?
    • 另一个答案比使用 foreach 循环更好,因为您不必依赖查询中列的顺序。
    猜你喜欢
    • 2020-06-28
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多