PHP SQL表编辑带有内联链接的行

时间:2014-11-18 20:01:08

标签: php mysql

我有一个表格工作正常,但是,无论点击哪个编辑链接,它目前都会将用户发送到phpmyedit屏幕。我想要完成的是单击内联链接以直接编辑该特定行或'id'。以下是我的代码示例:

$result = mysqli_query($con,"SELECT * FROM `TABLE_NAME` ORDER BY ID DESC");
echo "<table>";
echo "<table border='1' style='margin:200px 200px 500px 50px;'>
<tr>
<th>ID</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>Edit</th>
</tr>";

while($row = mysqli_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['ID'] . "</td>";
  echo "<td>" . $row['rowName'] . "</td>";
  echo "<td>" . $row['rowName'] . "</td>";
  echo "<td>" . $row['rowName'] . "</td>";
  echo "<td>" . $row['rowName'] . "</td>";
  echo "<td>" . $row['rowName'] . "</td>";
  echo "<td>" . $row['rowName'] . "</td>";
  echo "<td>" . $row['rowName'] . "</td>";
  echo "<td>" . $row['rowName'] . "</td>";
  echo "<td><a href='http://phpmyedit.com/editexample".$row['']."'>Edit</a></td><tr>";
  echo "</tr>";
  }
echo "</table>";

?>

所以基本上我只需要允许编辑链接直接在其被点击的行中编辑该ID。

**编辑:我正在使用PHPMyEdit编辑/更新数据库表中的数据,并希望继续使用PHPMyEdit。

提前致谢。

2 个答案:

答案 0 :(得分:2)

echo "<td><a href='edit.php?id=".$row['ID']."'>Edit</a></td><tr>";

在edit.php中,您必须创建将从数据库加载哪些值的表单:

<?php 

if (isset($_POST['fieldName']){
  mysqli_query($con, 'UPDATE `TABLE_NAME` SET fieldName='.$_POST['fieldName'].' WHERE ID='.intval($_GET['id']);
  exit;
}

$row = mysqli_fetch_assoc(mysqli_query($con, 'SELECT * FROM `TABLE_NAME` WHERE ID='.intval($_GET['id']))); ?>
<form method="POST">
<input type="text" name="fieldName" value="<?php echo $row['fieldName'] ?>">
<!--    -->
<input type="submit" value="save edit">
</form>

您需要通过数据过滤改进此伪代码,添加更多字段,包括数据库连接等。

答案 1 :(得分:0)

我认为你需要一个javascript代码来触发编辑模式。

但首先,您需要在执行while循环时为表字段提供唯一ID。

$counter=1;
while($row = mysqli_fetch_array($result))
  {
  echo "<tr>";
  echo "<td><div id='ID_$counter'>" . $row['ID'] . "</div></td>";
  echo "<td><div id='TH1_$counter'>" . $row['rowName'] . "</div></td>";
  echo "<td><div id='TH2_$counter'>" . $row['rowName'] . "</div></td>";
...
  echo "<td><button onclick='triggerEdit($counter)'>Edit this row</button></td><tr>";

$counter++;
}

然后使用javascript创建编辑和更新功能:

    function triggerEdit(rowNumber) {
            document.getElementById('id_'+rowNumber).innerHTML = "<input type=text id='SOMEIDx'><button onclick='update(SOME_IDx)'>update</button>";
            document.getElementById('TH1_'+rowNumber).innerHTML = "<input type=text id='SOMEIDx2'><button onclick='update(SOME_IDx2)'>update</button>";
// don't forget to assign the IDs
        }

如果您想要旧值,可以在更改之前使用document.getElementById()。innerHTML访问它们。

最后,构造一个更新函数,使用AJAX发送数据,给定字段的ID。