我有以下代码:
<?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
查询的结果。但是当我保存文件时,我在页面上看到的是与该查询的链接而不是结果。
我应该在第一个$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>';
}
}
?>