我想获取我想用来生成网址的行的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>
为什么最后一个没有pID值'12345'以及为什么有'h'?
因为在$element
循环结束后foreach
的值是每小时。这个字符串的第一个符号是h
。
正确的版本是:
echo ".....<a href=\"project.php?pID={$row['pID']}\">
当你使用fetch_assoc
功能。
<?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>";
}
?>