2010-06-17 241 views
0

我有一个从一些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可以从超拉。我在超链接指向的页面中使用了上面的代码,并且能够获得我想要的内容。不是太难,但是如果你不知道它是如何完成的话,会感到沮丧!

回答

1

您可以用每个员工的“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'在网站上应该是唯一的,就像站点注释一样。

+0

感谢您的回复,我越来越厌倦,所以明天我会放弃。感谢ID的提名,但我对你的意见有点困惑。我知道这是不正确的(实际上,我不应该在我的'​​'标签中使用'width'),我计划在稍后有机会将它放入样式表中,但是我认为'id'只需要每页都是唯一的,而不是整个网站。您是否说过,一旦我在我的网站的任何页面上使用'id',我就不能在同一网站的另一个页面上再次使用它?我应该如何正确格式化我的'​​'标签? – ubiquibacon 2010-06-17 06:00:13

+0

http://www.w3schools.com/tags/att_standard_id。asp,不,每个id属性应该在每个页面的基础上使用。您当然可以以独特的方式在每一页上使用它。 – DrColossos 2010-06-17 07:09:09

相关问题