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

标签 php mysql sql database html-table

考虑到我使用 PHP 和 MySql,我的数据库中有 2 个表,名为:表 A 和表 B。 我使用一个 php 页面来填充它们,并使用另一个 php 页面来显示它们。 表 A 的每一行都包含一个可单击的按钮,用于打开模式弹出窗口。 我想做的是在此模式中显示表 B 中相应行的一些信息。

这就是我的意思:

  • row1表A的按钮显示row1表B的信息
  • row2表A的按钮显示row2表B的信息

我被困在表 A 中的每个按钮都向我显示整个表 B 的地步,并且我无法弄清楚如何关联这些行。有什么建议吗?

我不明白如何为该行的每个按钮关联一个不同的“操作”。

----附加信息:----

  • index.php页面显示表B
  • 每次插入新行时,都会创建一个按钮。
  • 每次单击按钮时,都会出现一个模式,显示表 A 中引用的行。

----- 更新 2 ------ 表B可以被认为是表A的扩展

表 A 有此列:
编号 |名称 |邮件 |数量 |设备|价格|付款|状态

表 B 有此列:
编号 |设备|型号|问题|状态 |优先|按钮1 |按钮2

button1 -> 更改状态并且更改反射(reflect)在表 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 需要有一个主键来唯一标识每一行。单击按钮应使用与表 A 中的行中的 PK 值匹配的 where 子句调用表 B 上的查询。(这就是外键的工作原理。)

在 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),我没有将其包含在本示例中,但它会生成包含详细信息的弹出窗口从第二个表。

关于php - 表关系问题 - 从第二个表收集信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33816066/

相关文章:

mysql/postgres窗口函数限制没有子查询的结果

php - 如何将 php 中的值附加到我的 JS 文件中?

php - Apache RewriteCond 防止无限循环

php - cakephp 保存数组

MySQL 全文搜索两列

mysql - 尽管加入了索引键,但 MySQL (InnoDB) 查询速度很慢,为什么?

php - 通过假设表 MySQL/PHP 中的列来设置值

php - 使用 PHP 存储视频时出现未定义索引错误

python - 更改 Django 默认模型设置

当 WHERE 不匹配时返回具有特定 NULL 值的记录的 SQL 查询