考虑到我使用的是PHP和MySql,我的数据库中有2个名为:table A和table B. 我使用一个php页面来填充它们,另一个php页面用于显示它们。 表A包含每行打开模式弹出窗口的可单击按钮。 我想要做的是在这个模态中显示表B中相应行的一些信息。
这就是我的意思:
我坚持到表A中的每个按钮向我显示整个表B的点,我无法弄清楚如何关联这些行。有什么提示吗?
我不明白如何将行中的每个按钮关联到另一个"动作"。
----附加信息:----
-----更新2 ------ 表B可以是cosider表A的扩展
表A有此栏:
id |名字|邮件|号码|设备|价格|付款|状态
表B有此栏:
id |设备|型号|问题|状态|优先| 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";
答案 0 :(得分:1)
表A需要有一个主键来唯一标识每一行。单击按钮应调用表B上的查询,其中where
子句与表A中的行的PK值匹配。(这是外键的工作方式。)
在PHP中,您可以将该PK值作为按钮名称的一部分。从单击的按钮名称中提取键值,并将其传递到表B上的查询中。(这对于预准备语句查询非常有用。)
这是一个例子,使用Douglas&amp; amp;的 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)
,但它可以生成弹出窗口,其中包含第二个表中的详细信息。