在 table 上回显两个 SQL 查询结果
Echo two SQL query results on a table
我有以下代码:
<?php
include_once '../includes/db.inc.php';
$sql = "SELECT * FROM clients ORDER BY nif_id ASC;";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$first = $row["prm_nome"];
$last = $row["apelido"];
$phone = $row['nmr_tlm'];
$email = $row['mail'];
$nif = $row['nif_id'];
$flight = "SELECT flight_id FROM flights INNER JOIN clients ON flights.nif_id=clients.nif_id";
echo '<tr>';
echo '<td><a href="detail.php?id='. $nif . '">'.$nif.'</a></td>';
echo '<td>'.$first.'</td>';
echo '<td>'.$last.'</td>';
echo '<td>'.$phone.'</td>';
echo '<td>'.$email.'</td>';
echo '<td><a href="../flights/detail.php?id='. $flight . '">'.$flight.'</a></td>';
echo '</tr>';
}
}
?>
我需要回显 SELECT flight_id FROM flights INNER JOIN clients ON flights.nif_id=clients.nif_id
查询的结果。但是当我保存文件时,我在页面上得到的是 link 与该查询而不是结果。
我应该用第一个 $sql =
下的那个查询开始一个新的 $sql =
吗?
或者还有别的办法吗?
我尝试了 UNION
和 SELECT *, flight_id FROM flights INNER JOIN clients ON flights.nif_id=clients.nif_id FROM clients ORDER BY nif_id ASC;
但后来我得到 mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given
.
您不需要两次查询。只需使用连接查询。
<?php
include_once '../includes/db.inc.php';
$sql = "SELECT c.prm_nome, c.apelido, c.nmr_tlm, c.mail, c.nif_id, f.flight_id
FROM clients c
JOIN flights f ON f.nif_id = c.nif_id
ORDER BY c.nif_id ASC;";
$result = mysqli_query($conn, $sql) or die(mysqli_error($conn));
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$first = $row["prm_nome"];
$last = $row["apelido"];
$phone = $row['nmr_tlm'];
$email = $row['mail'];
$nif = $row['nif_id'];
$flight = $row['flight_id'];
echo '<tr>';
echo '<td><a href="detail.php?id='. $nif . '">'.$nif.'</a></td>';
echo '<td>'.$first.'</td>';
echo '<td>'.$last.'</td>';
echo '<td>'.$phone.'</td>';
echo '<td>'.$email.'</td>';
echo '<td><a href="../flights/detail.php?id='. $flight . '">'.$flight.'</a></td>';
echo '</tr>';
}
}
?>
我有以下代码:
<?php
include_once '../includes/db.inc.php';
$sql = "SELECT * FROM clients ORDER BY nif_id ASC;";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$first = $row["prm_nome"];
$last = $row["apelido"];
$phone = $row['nmr_tlm'];
$email = $row['mail'];
$nif = $row['nif_id'];
$flight = "SELECT flight_id FROM flights INNER JOIN clients ON flights.nif_id=clients.nif_id";
echo '<tr>';
echo '<td><a href="detail.php?id='. $nif . '">'.$nif.'</a></td>';
echo '<td>'.$first.'</td>';
echo '<td>'.$last.'</td>';
echo '<td>'.$phone.'</td>';
echo '<td>'.$email.'</td>';
echo '<td><a href="../flights/detail.php?id='. $flight . '">'.$flight.'</a></td>';
echo '</tr>';
}
}
?>
我需要回显 SELECT flight_id FROM flights INNER JOIN clients ON flights.nif_id=clients.nif_id
查询的结果。但是当我保存文件时,我在页面上得到的是 link 与该查询而不是结果。
我应该用第一个 $sql =
下的那个查询开始一个新的 $sql =
吗?
或者还有别的办法吗?
我尝试了 UNION
和 SELECT *, flight_id FROM flights INNER JOIN clients ON flights.nif_id=clients.nif_id FROM clients ORDER BY nif_id ASC;
但后来我得到 mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given
.
您不需要两次查询。只需使用连接查询。
<?php
include_once '../includes/db.inc.php';
$sql = "SELECT c.prm_nome, c.apelido, c.nmr_tlm, c.mail, c.nif_id, f.flight_id
FROM clients c
JOIN flights f ON f.nif_id = c.nif_id
ORDER BY c.nif_id ASC;";
$result = mysqli_query($conn, $sql) or die(mysqli_error($conn));
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$first = $row["prm_nome"];
$last = $row["apelido"];
$phone = $row['nmr_tlm'];
$email = $row['mail'];
$nif = $row['nif_id'];
$flight = $row['flight_id'];
echo '<tr>';
echo '<td><a href="detail.php?id='. $nif . '">'.$nif.'</a></td>';
echo '<td>'.$first.'</td>';
echo '<td>'.$last.'</td>';
echo '<td>'.$phone.'</td>';
echo '<td>'.$email.'</td>';
echo '<td><a href="../flights/detail.php?id='. $flight . '">'.$flight.'</a></td>';
echo '</tr>';
}
}
?>