考虑到我使用的是PHP和MySql,我的数据库中有2个表,名为:表A和表B。我使用一个 php 页面来填充它们,并使用另一个 php 页面来播放它们。表 A 包含每行的可单击按钮,用于打开模式弹出窗口。我想做的是在此模式中显示表 B 中相应行的一些信息。
这就是我的意思:
- 行 1 表 A 的按钮显示行 1 表 B 的信息 第 2 行表
- A 的按钮显示第 2 行表 B 的信息
我坚持到表 A 中的每个按钮都向我显示整个表 B 的地步,并且我无法弄清楚如何关联这些行。有什么提示吗?
我不明白如何为行的每个按钮关联不同的"操作"。
----附加信息:----
- 索引.php页面显示表 B
- 每次插入新行时,都会创建一个按钮。
- 每次我单击该按钮时,一个模态都会显示表 A 的引用行。
-----更新 2 ------表 B 可以是表 A 的扩展
表 A 包含以下列:
身份证 |姓名 |邮件 |号码 |设备 |价格 |付款 |地位
表 B 有这样一栏:
身份证 |设备 |型号 |问题 |状态 |优先 |BUTTON1 |BUTTON2
button1 ->更改状态,更改反映在表 A 中
button2 -> 应该收集表 A 的指定行以及信息 姓名 |邮件 |号码 |价格 |付款
-----更新 3 ------
在表 B 中:
$custid = $row['id'];
<td> <a class='btn btn-primary btn-sm' data-toggle='modal'
data-target='#myModal' name='[$custid]' > Info</a></td>
在表 A 中:
$sql = "SELECT name,mail,number,price,paymenttype,faktura,date from TABLE_A";
表 A 需要有一个主键来唯一标识每一行。单击按钮应调用对表 B 的查询,该查询具有与表 A 中行的 PK 值匹配的 where
子句。(这就是外键的工作方式。
在 PHP 中,您可以将该 PK 值作为按钮名称的一部分。从单击的按钮的名称中提取键值,并将其传递到表 B 上的查询中。(这对于预准备语句查询来说是一个很好的用法。
下面是一个示例,使用 Douglas & Douglas 的 PostgreSQL 2/e 中的 movies
数据库:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<?php
require_once("connect_params.php");
$dbh = new PDO($DSN);
// Use a prepared statement here if your query takes any parameters
$query = "SELECT customer_id, customer_name, phone, balance FROM customers ORDER BY customer_id";
$result = $dbh->query($query);
// php.net says this is the only reliable way to force-close a PDO connection
$dbh->query('SELECT pg_terminate_backend(pg_backend_pid())');
$dbh = null;
?>
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>Customers</title>
</head>
<body>
<form onsubmit="return false;">
<table style="text-align: left;" border="1" cellpadding="2" cellspacing="0">
<tbody>
<tr>
<td style="vertical-align: top;">
Customer Name
</td>
<td style="vertical-align: top;">
Phone
</td>
<td style="vertical-align: top;">
Current Balance
</td>
<td style="vertical-align: top;">
Rentals
</td>
</tr>
<!-- ********** Here's where we start building the individual rows ********** -->
<?php
foreach ($result as $row)
{
$custid = $row['customer_id'];
?>
<tr>
<td>
<?php echo $row['customer_name']; ?>
</td>
<td>
<?php echo $row['phone']; ?>
</td>
<td>
<?php echo $row['balance']; ?>
</td>
<td>
<button name="show_rentals[<?php echo $custid; ?>]"
value="<?php echo $custid; ?>"
onclick="showDetail(<?php echo $custid; ?>);">
Show
</button>
</td>
</tr>
<?php
}
?>
<!-- ********** We're finished building the individual rows ********** -->
</tbody>
</table>
</form>
<br>
</body>
</html>
按钮的onclick
处理程序调用一个 JavaScript 函数showDetail(int custid)
我尚未包含该函数,但它的作用是使用第二个表中的详细信息生成弹出窗口。