2014-11-06 36 views
1

我正在为学校的课程做一个计算项目。它涉及PHP,MySQL和HTML - 实质上构建了一个基于Web的应用程序。PHP - 如何编辑HTML表格中显示的PHP表格的内容?

我有一个名为“用户”在一个名为“cp11641_users” 此表的内容数据库中的PHP表,可以使用以下的mysql_query一直回荡成HTML表格:

<div id='accordion'> <ul> 
      <li> 
       <a href='#one'><h4>Edit User Table</h4></a> 
       <div id='one' class='accordion'>"; 
       $query = "SELECT * FROM users"; //You don't need a ; like you do in SQL 
       $result = mysql_query($query); 

     echo "<table class='container'>"; // start a table tag in the HTML 
     echo " <thead>  <tr> 
      <th>Firstname</th> 
      <th>Lastname</th>  
      <th>Username</th> 
      <th>Edit</th> </tr> </thead> "; 
    echo "<tbody>"; 
while($row = mysql_fetch_array($result)){ //Creates a loop to loop through results 
echo "<tr><td>" . $row['first'] . "</td><td>" . $row['last'] . "</td><td>" . $row['username'] . "</td><td>" . "edit" . "</td></tr>"; } 
echo "</tbody> </table>"; //Close the table in HTML 
       echo "</div> 
      </li>"; 

这显然放将PHP表格的内容转换为HTML表格进行查看。但我希望能够单击html表中每行旁边的“编辑”选项卡,并且能够将该行中的数据更改/修改/删除。

这是为管理员页面应该能够更改每个用户的具体细节,这实际上是我想要做的。

我在想,我将需要使用的事实,即循环使用的数组,我可以拉特定行的数据(即$行[1]),然后把它放在$ _POST [] ?我不确定

回答

0

你的MySQL应该包含一个唯一的ID。现在我们来调用该列ID。

然后像做

while($row = mysql_fetch_array($result)){ //Creates a loop to loop through results 
echo "<tr> 
    <td>" . $row['first'] . "</td> 
    <td>" . $row['last'] . "</td> 
    <td>" . $row['username'] . " </td> 
    <td><a href='editUser.php?id='".$row['id']."'> . "edit" . "</a></td> 
</tr>"; } 

然后在你的editUser.php,加

$userid = mysql_real_escape_string($_GET['id']); 

$query = "SELECT * FROM users WHERE id = ".$userid; 
$result = mysql_query($query); 

你编辑。

+0

嗨,我期待这个工作,但是当我把鼠标悬停在生成的链接上时,它只显示“http://cp11641.khsict.com/user_edit.php?id=”,没有任何东西会进入链接的最后部分,该号码不会继续它,没有? – 2014-11-06 21:00:33

+0

别担心,我懂了!伟大的工作人员,在while循环中,你的代码的第二行代码中有一些错位“'”。但我现在已经开始工作了!非常感谢:)! – 2014-11-06 21:23:45

0

您可能希望将编辑功能放入单独的页面。基本上,你有一个链接旁边的每个项目发送到一个单独的页面与表单,然后将发送新的信息来更新项目。

对于将它放入$ _POST中(虽然使用$ _GET实际上更常见)。您将通过“编辑”链接发送该ID,以便表单知道要编辑的内容。然后它会在您提交时在MySQL中对该项目执行UPDATE。

+0

我也在想这个,这是有道理的。这只是从数组中拉出特定的行并将其放在单独的页面中使用的问题。我将试验$ _POST ['$ Row [x]']; – 2014-11-06 19:25:17

+0

如果你一次只编辑一个,使用ajax也是一个有效的方法。 – 2014-11-06 19:39:23

0

我不认为你需要使用$ _POST一旦你没有发送注意到服务器。而是从服务器请求。所以你需要的是回声。只要。

首先。我认为你正在这样做,但你需要有你的页面.php。否则它将无法工作(没有在htaccess上进行更改)。

看起来你的代码很好,但你需要<php? ?>标签。他们在哪?

<div id='accordion'> 
      <ul> 
       <li> 
        <a href='#one'><h4>Edit User Table</h4></a> 
        <div id='one' class='accordion'> 
        <php? 
        //Connect to your database .... 
        $query = "SELECT * FROM users"; 
        $result = mysql_query($query); 

        echo "<table class='container'>"; 
        echo " <thead><tr><th>Firstname</th><th>Lastname</th><th>Username</th>   <th>Edit</th></tr></thead> "; 
        echo "<tbody>"; 
         while($row = mysql_fetch_array($result)){ 
           echo "<tr><td>" . $row['first'] . "</td><td>" .     $row['last'] . "</td><td>" . $row['username'] . "</td><td>" . "edit" . "</td></tr>"; } 

        echo "</tbody> </table>"; 
        ?> 
     </div> 
      </ul> 
       </li> 
</div> 
+0

嗨,这只是一个代码块,标签是在开始(就在if语句之前,检查$ _SESSION []是否是管理会话而不是标准) – 2014-11-06 20:13:33