如何在PHP生成表的单元格中创建链接?
问题描述:
我有一个从一些PHP代码生成的表,其中列出了一小部分员工重要信息。我想让它成为每行或每行至少有一个元素可以被点击,这样用户将被重定向到与被点击的员工有关的所有信息(从MySQL数据库中提取)。我不知道如何才能做到这一点,但我愿意接受建议。我想坚持PHP和/或JavaScript。下面是我的表代码:如何在PHP生成表的单元格中创建链接?
<table>
<tr>
<td id="content_heading" width="25px">ID</td>
<td id="content_heading" width="150px">Last Name</td>
<td id="content_heading" width="150px">First Name</td>
<td id="content_heading" width="75px">SSN</td>
</tr>
<?php
$user = 'user';
$pass = 'pass';
$server = 'localhost';
$link = mysql_connect($server, $user, $pass);
if (!$link){
die('Could not connect to database!' . mysql_error());
}
mysql_select_db('mydb', $link);
$query = "SELECT * FROM employees";
$result = mysql_query($query);
mysql_close($link);
$num = mysql_num_rows($result);
for ($i = 0; $i < $num; $i++){
$row = mysql_fetch_array($result);
$class = (($i % 2) == 0) ? "table_odd_row" : "table_even_row";
echo "<tr class=".$class.">";
echo "<td>".$row[id]."</td>";
echo "<td>".$row[l_name]."</td>";
echo "<td>".$row[f_name]."</td>";
echo "<td>".$row[ssn]."</td>";
echo "</tr>";
}
?>
</table>
编辑
好,修改什么@DrColossos贴我已经能够让我的链接正常工作,但我现在遇到的麻烦后,唯一性部分。下面是我现在用的创建我的表代码:
echo "<td><a href=Edit_Employee.php?".$row[id].">".$row[id]."</a></td>";
echo "<td><a href=Edit_Employee.php?".$row[id].">".$row[l_name]."</a></td>";
echo "<td><a href=Edit_Employee.php?".$row[id].">".$row[f_name]."</a></td>";
echo "<td><a href=Edit_Employee.php?".$row[id].">".$row[ssn]."</a></td>";
这使得所有的行超链接到Edit_Employee.php?**id**
元素。例如,如果id
是一个超链接将是Edit_Employees.php?1
。 现在我需要在我的Edit_Employee.php
页面中做什么来获取或识别链接中的id
,因为它是id
,它是唯一的,这是我需要基于我的MySQL搜索。
编辑
想通了。这奏效了:
$id = $_GET['id'];
我发现,我创建的链接,我没有让id
一个全局变量PHP可以从超拉。我在超链接指向的页面中使用了上面的代码,并且能够获得我想要的内容。不是太难,但是如果你不知道它是如何完成的话,会感到沮丧!
答
您可以用每个员工的“ID”创建一个唯一的链接。
你可以做到以下几点:
echo "<td><a href="employee.php?id=\"" . $row['id'] . "\">" . $row['id'] . "</td>";
或更具可读性
echo "<td><a href="employee.php?id=\"{$row['id']}\">{$row['id']}</td>";
然后你可以使用employee.php来显示它的详细信息(标识将在$ _GET ['身份证'],见here)。在处理它之前,不要忘记检查$ _GET ['id']的值,因为它可能包含有害数据(例如SQL注入)。
顺便说一句,您在表id="content_heading"
中使用的HTML属性'id'在网站上应该是唯一的,就像站点注释一样。
感谢您的回复,我越来越厌倦,所以明天我会放弃。感谢ID的提名,但我对你的意见有点困惑。我知道这是不正确的(实际上,我不应该在我的''标签中使用'width'),我计划在稍后有机会将它放入样式表中,但是我认为'id'只需要每页都是唯一的,而不是整个网站。您是否说过,一旦我在我的网站的任何页面上使用'id',我就不能在同一网站的另一个页面上再次使用它?我应该如何正确格式化我的''标签? – ubiquibacon 2010-06-17 06:00:13
http://www.w3schools.com/tags/att_standard_id。asp,不,每个id属性应该在每个页面的基础上使用。您当然可以以独特的方式在每一页上使用它。 – DrColossos 2010-06-17 07:09:09