【问题标题】:How to get the first column/td value of a foreach loop如何获取 foreach 循环的第一列/td 值
【发布时间】:2018-06-05 17:55:32
【问题描述】:

我想获取我想用来生成 url 的行的 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>";
        }

?>

除了该行的最后一个&lt;td&gt; 之外,一切正常。 (不确定我使用的措辞是否正确。) 假设我的数据库表行是

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>

为什么最后一个&lt;td&gt; 没有pID 值'12345',为什么有'h'? 我希望最后一个 &lt;td&gt; 是:

<td><a href="project.php?pID=12345">Got to project</a></td>

【问题讨论】:

    标签: php arrays mysqli html-table associative-array


    【解决方案1】:

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

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

    正确的版本是:

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

    当你使用fetch_assoc 函数时。

    【讨论】:

    • 哦..,明白了..但我现在得到了这个&lt;a href="project.php?pID=&gt;
    • 还是一样.. 我的意思是 url 没有 ID,我在错误日志中得到这个 PHP Notice: Undefined index: pId in ... functions.php on line 37 第 37 行是 echo "&lt;td class=\"actions\"&gt;&lt;a href=\"project.php?pID={$row['pId']}\"&gt;go tot project&lt;/a&gt;
    • 对不起,pID,不是pId。顺便说一句,您可以打印行,看看那里有什么。
    • 大声笑……这是只有天才人才会犯的错误……非常感谢……现在可以正常工作了……
    【解决方案2】:
    <?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>";
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多