0

如果这不清楚我想要什么,我深表歉意,但我会尽力而为。

我目前是一名 IT 学徒,并被要求创建一个投诉数据库。我决定创建一个表格并将数据回显到一个表格中,以便快速汇总收到的投诉,

<table border='1'>
<tr>
<th>CAN No</th>
<th>Contract No</th>
<th>Customer</th>
<th>Supplier</th>
<th>Date filed</th>
<th>Raised by</th>
<th>Details</th>
<th></th>
<th></th>
<th></th>
</tr>

<?php while ($db_field = mysql_fetch_assoc($result)) { ?>
<tr>
<td><? print $db_field['can_no'] ?></td>
<td><? print $db_field['contract_no'] ?></td>
<td><? print $db_field['customer'] ?></td>
<td><? print $db_field['supplier'] ?></td>
<td><? print $db_field['datemade'] ?></td>
<td><? print $db_field['raised_by'] ?></td>
<td><? print $db_field['details'] ?></td>
<td> View » </td>
<td> Edit » </td>
<td> Delete [x] </td>
</tr>

因此,这只是创建了收到的投诉的快速摘要。(我会在某个时候添加一个搜索功能)。我现在要添加的是一种以我喜欢的格式而不是表格来查看整个投诉的方法。例如,我单击查看其中一个的视图,它需要我 www.website.com/complaints?id=1,这将在一个完全不同的页面上显示完整的投诉。

另外,如何让编辑按钮显示已填充数据的同一页面,以便快速编辑?

对不起,如果我没有很好地解释它:(

编辑:我发现了如何做我想做的事情并让它完美地工作。我创建了投诉.php 并使用了 $_GET['id'],然后使用了 SELECT * FROM 投诉 WHERE id = '$id'。

感谢所有帮助过的人。

4

2 回答 2

0

警告:

请不要使用mysql_*函数来编写新代码。它们不再被维护并且社区已经开始了弃用过程。看到红框了吗?

相反,您应该了解准备好的语句并使用PDOMySQLi本文应该提供一些有关决定使用哪个 API 的详细信息。对于 PDO,这里有一个很好的教程

首先,您应该阅读有关SQL 注入的更多信息,因为这是一种非常不安全的方法。

对于查看部分,您可以设置不同的页面来查看个人投诉,并将文本修改为<a href="view_complaint.php?id= <?php print $db_field['id']; ?>">View</a>。(我假设您的数据库设置在id此处包含一个字段。

$result = mysql_query("SELECT * FROM complaints WHERE complaint_id = $id");
$row = mysql_fetch_assoc($result);

现在您有了一个$row数组,其中包含可以以您想要的 HTML 格式输出的相同字段。不需要while构造,因为我们只有一行。

www.website.com/complaints?id=1有点狡猾,因为这不是一个正确的 URL。您要么使用漂亮的 URL来设置website.com/complaints/1,要么使用网站根目录中的 PHP 文件:website.com/complaints.php?id=1.

对于版本和删除,如果您不想为该版本重新加载页面,AJAX就是您所需要的。这将帮助您设置浏览器不需要重新加载页面来修改内容的方法。为此,您需要了解 JavaScript,并且在此之前,还要熟悉更深层次的 PHP 并保护您现有的代码

对于非异步部分。?id=1您可以通过在其请求中传递相同的参数来创建一个处理版本的页面。该站点应<input>在表单中包含与数据库中的字段一样多的字段。每个<input>字段都有一个value="foobar"设置其默认值的属性。就像您现在将内容打印到表格中一样,您可以将其放在页面加载到表单中,您可以在其中根据需要对其进行编辑。发送表单时,您将使用UPDATE table SET field1=value1, field2=value2 WHERE id = $id查询来更新您的数据库。

我只能建议你首先让你的系统能够处理编辑和删除,即使它需要调用单独的页面和来自客户端的额外请求,然后继续使用异步方法。

于 2012-08-08T11:47:56.893 回答
0

在谷歌上查看这个

  • 如何传递 id 并通过查询字符串获取它
  • 如何从数据库中预填充数据

这两个应该可以帮助你

你的观点应该是 echo('<a href="www.website.com/complaints?id=' . $db_field['details'] . '">View</a>');

帮助:$_GET、$_POST

$id = (int)$_GET['complaint_id'];  // Where id MUST be an integer
$sql = "SELECT * FROM Complaint WHERE complaint_id = $id";
execute your query

这可能是一个糟糕的代码,但只是为了解释。

另请阅读有关 SQL 注入的信息

于 2012-08-08T10:56:46.860 回答