如何获取foreach循环的第一列/ td值

问题描述 投票:-2回答:2

我想获取我想用来生成网址的行的ID。我使用以下代码生成表行。

<?
    $sql="SELECT pID,pName,pBudget,pRate FROM projects ORDER BY id";
    $result=mysqli_query($con,$sql);
    $projects = array();
    while($row = mysqli_fetch_assoc($result))
    {
        $projects[] = $row;
    }
    foreach ($projects as $row) 
        { 
            echo "<tr>";
            foreach ($row as $element)
            {
                echo "<td>".$element."</td>";               
            }
            echo "<td class=\"actions\">
                    <a href=\"project.php?pID=$element[0]\">
                    Go to Project
                    </a>
                </td>";
            echo "</tr>";
        }

?>

所有工作都很好,除了行的最后一个<td>。 (不确定我使用的是正确的措辞。)假设我的数据库表行是

pID   |     pName      | pBudget | pRate
-----------------------------------------
12345 | Create Website | 250     | hourly 

然后我在我的页面中得到这样的表行

<tr>
    <td>12345</td>
    <td>Create Website</td>
    <td>250</td>
    <td>hourly</td>
    <td><a href="project.php?pID=h">Got to project</a></td>
</tr>

为什么最后的<td>没有pID值'12345'以及为什么有'h'?我想最后的<td>是:

<td><a href="project.php?pID=12345">Got to project</a></td>
php arrays mysqli html-table associative-array
2个回答
3
投票

为什么最后一个没有pID值'12345'以及为什么有'h'?

因为在$element循环结束后foreach的值是每小时。这个字符串的第一个符号是h

正确的版本是:

echo ".....<a href=\"project.php?pID={$row['pID']}\">

当你使用fetch_assoc功能。


0
投票
<?php
$sql="SELECT pID,pName,pBudget,pRate FROM projects ORDER BY id";
$result=mysqli_query($con,$sql);
while($row = mysqli_fetch_assoc($result))
{
    echo "<tr>";
    echo "<td>".$row['pName']."</td>";
    echo "<td>".$row['pBudget']."</td>";
    echo "<td>".$row['pRate']."</td>";
    echo "<td class='actions'>
                <a href='project.php?pID=$row['pID']'>
                Go to Project
                </a>
            </td>";
        echo "</tr>";
}
?>
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.