Php 从表a的按钮行中收集一行表B
我正在使用php和表引导Php 从表a的按钮行中收集一行表B,php,jquery,mysql,twitter-bootstrap,html-table,Php,Jquery,Mysql,Twitter Bootstrap,Html Table,我正在使用php和表引导 我有一个表格,每行包含一个按钮 每个按钮都有一个与行号相等的值。(见下文) 在我的模式中使用此代码时,我总是为所有按钮收集表B的第3行 $sql = "SELECT * from tableb WHERE id=3 "; 在模态中使用此代码时,我收集最后一行插入的每个按钮 $sql = "SELECT * from tableb WHERE id='$job_id' "; (表A和表B通过外键连接) TableB具有(id,job_id),job_id=t
- 我有一个表格,每行包含一个按钮李>
- 每个按钮都有一个与行号相等的值。(见下文)
- 在我的模式中使用此代码时,我总是为所有按钮收集表B的第3行
$sql = "SELECT * from tableb WHERE id=3 ";
- 在模态中使用此代码时,我收集最后一行插入的每个按钮
$sql = "SELECT * from tableb WHERE id='$job_id' ";
(表A和表B通过外键连接)
TableB具有(id,job_id),job_id=tableA的id
表A有(id) 有什么建议可以帮助我实现我的目标吗
更新1->xxx.php文件包含加载TableA的脚本和加载模式弹出窗口的脚本
加载表的脚本
您可以使用JOIN
指令通过一个请求链接两个表
// For the third button the SQL request will be :
$sql="SELECT * FROM tableA A INNER JOIN tableb B ON B.job_id=A.id WHERE B.id=3";
// For the fourth button the SQL request will be :
$sql="SELECT * FROM tableA A INNER JOIN tableb B ON B.job_id=A.id WHERE B.id=4";
请注意,这里我在请求时使用别名。例如,A是表A的别名。因此,A.id是表A的id列
有关SQL联接的更多信息,请查看此链接:。要获取tableB中与tableA id相对应的行,您应该编写:
$sql = "SELECT * from tableb WHERE job_id = $jobId ";
请注意,我放置了“WHERE job_id=”,而不是“WHERE id=”
有一个答案建议加入。通过联接,您将获得tableA中的行和tableB中的数据tableA是否已经包含了应在模式中显示的所有数据,或者它只包含id和一些列,并且您需要使用id从数据库中获取完整信息,以便在用户单击按钮时显示?TableA不包含我想要显示的所有数据。我想从TableA的按钮中显示TableB中包含的数据,但要将按钮与相应的行关联起来。我添加了一张图片,以更清楚地说明我想要实现的目标。使用此解决方案,所有按钮始终显示同一行(表B中插入的最后一行)。我认为我的问题是,按钮始终获得插入的最后一行的值(我可以显示),但是,例如,第三行的按钮应该包含值3,而不是最后一行按钮的值。您可以显示用于加载视图的代码吗?我需要查看用于显示表中项目列表的第一个查询当插入行时,每个按钮都会获得一个自动增量值,我应该可以这样说:单击按钮时->如果“按钮值”=“客户id值”(我使用$sql=)显示表的详细信息选择*from tableb,其中$job_id=id”;
但我不明白为什么只显示插入的最后一行。感谢提示。无论如何,我需要它来显示所有按钮,而不仅仅是特定按钮。应该制作一个循环,以便插入的每一新行都会获得一个按钮,该按钮具有与tableb的行号相对应的新值
<?php
include("../includes/connection.php");
if ($link->connect_errno > 0) {
die('Unable to connect to database [' . $link->connect_error . ']');
}
$sql = "SELECT * from TableA";
if (!$result = $link->query($sql)) {
die('There was an error running the query [' . $link->error . ']');
}
echo "
<table class='table'>
<thead>
<tr>";
/* Get field information for all columns */
...
while ($row = $result->fetch_assoc()) {
$job_id = $row['id'];
echo "<form action='' method=post>";
echo "<tr class='info'>
<input type=hidden name=hidden value=" . $row['id'] . ">
<td>" . $row['id'] . "</td>
<td>" . $row['device'] . "</td>
<td>" . $row['model'] . "</td>
<td>" . $row['problem'] . "</td>
<td> <a class='btn btn-primary btn-sm' data-toggle='modal' data-target='#myModal' name='job_id' value=[$job_id] > Info</a></td>
</tr>";
echo "</form>";
} echo " </tbody> </table>"; ?>
<?php
include("../includes/connection.php");
if ($link->connect_errno > 0) {
die('Unable to connect to database [' . $link->connect_error . ']');
}
$sql = "SELECT * from TableB WHERE job_id=$job_id ";
if (!$result = $link->query($sql)) {
die('There was an error running the query [' . $link->error . ']');
}
echo "
<table class='table'>
<thead>
<tr>";
/* Get field information for all columns */
while ($finfo = $result->fetch_field()) {
echo "
<th>" . $finfo->name . "</th>";
}
echo "
</tr>
</thead>
<tbody>";
while ($row = $result->fetch_assoc()) {
echo "<tr class='info'>
<td>" . $row['id'] . "</td>
<td>" . $row['name'] . "</td>
<td>" . $row['mail'] . "</td>
<td>" . $row['number'] . "</td>
<td>" . $row['price'] . "</td>
<td>" . $row['paymenttype'] . "</td>
<td>" . $row['faktura'] . "</td>
<td>" . $row['date'] . "</td>
</tr>";}echo " </tbody></table>";?>
// For the third button the SQL request will be :
$sql="SELECT * FROM tableA A INNER JOIN tableb B ON B.job_id=A.id WHERE B.id=3";
// For the fourth button the SQL request will be :
$sql="SELECT * FROM tableA A INNER JOIN tableb B ON B.job_id=A.id WHERE B.id=4";
$sql = "SELECT * from tableb WHERE job_id = $jobId ";