在PHP循环中通过href传递ID

时间:2017-08-27 13:43:59

标签: php mysql concatenation

我有这个while循环工作正常,除了表中的最后一行我无法正确通过id。 它没有给我任何错误,但是当我将鼠标悬停在“修改”链接上时,它会显示正确的ID,并且在表格的所有html代码之后立即显示。 看起来它没有正确连接。

有代码:

while ($row = mysqli_fetch_assoc($result)){
    echo "<table><tr><td>" . $row["id"] . "</td>" . 
         "<td>" . $row["product_name"] . "</td>" .
         "<td>" . $row["visible"] . 
         "<td><a href=\"modify.php?id=" . $row["id"] . ">Modify</a>" .
         "</td></tr></table>";
}

3 个答案:

答案 0 :(得分:1)

您正在为每条记录使用echo,这很好,但每次您回显一张全新的表格。你可能意味着只回显一个新行。正如其他人所说,你的href也没有正确关闭

做类似的事情:

echo '<table>';
while($row = mysqli_fetch_assoc($result)){
  echo "<tr>
          <td> $row[id] </td>
          <td> $row[product_name] </td>
          <td> $row[visible] </td>
          <td><a href='modify.php?id=$row[id]'>Modify</a></td>
        </tr>";
}
echo '</table>';

请注意,因为您正在编写HTML,所以您不需要连接多个字符串。您可以拥有一个长多行字符串。即使您的字符串中有换行符,浏览器也会正常呈现表格。此外,PHP可以解析双引号字符串并为其字符串值替换变量,因此您不需要执行"<td>" . $row["id"];这很好用:"<td>$row[id]"

答案 1 :(得分:0)

您似乎错过了"而未关闭href。下面我通过添加缺少的"修复了它。另外,我换掉了单引号的大多数双引号。这是我的偏好,因为它使阅读更容易;我怀疑你在识别缺失的引用时遇到了麻烦,因为只使用了双打。

    while ($row = mysqli_fetch_assoc($result)){
        echo '<table><tr><td>' . $row["id"] . '</td>' .
             '<td>' . $row["product_name"] . '</td>' .
             '<td>' . $row["visible"] .
             '<td><a href="modify.php?id=' . $row["id"] . '">Modify</a>' .
             '</td></tr></table>';
    }

答案 2 :(得分:0)

您似乎忘记关闭while循环中的url属性。

另外,正如其他答案所指出的那样,每次运行此循环时,您都使用href来打印新表,这可能会导致一些奇怪的结果。

下面是一个示例,您可以将所有内容追加到字符串名称echo | print,并在完成循环后将其打印出来:

$table