表关系问题 - 从第二个表收集信息


Tables relationship issue - gathering info from second table

考虑到我使用的是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)我尚未包含该函数,但它的作用是使用第二个表中的详细信息生成弹出窗口。