Php 从搜索结果中删除已购买的图书

Php 从搜索结果中删除已购买的图书,php,mysql,Php,Mysql,我正在检查图书订购表,以获得已订购图书ISBN的列表。如果图书排序表中存在ISBN,我不希望它显示在搜索结果列表中。我有以下代码: include "include.php"; session_start(); $query1 = 'SELECT isbn as myisbn FROM books_ordered'; $result1 = mysqli_query($con, $query1) or die("Error in query $query1: " . mysqli_error()

我正在检查图书订购表,以获得已订购图书ISBN的列表。如果图书排序表中存在ISBN,我不希望它显示在搜索结果列表中。我有以下代码:

include "include.php";
session_start();

$query1 = 'SELECT isbn as myisbn FROM books_ordered';
$result1 = mysqli_query($con, $query1) or die("Error in query $query1: " . mysqli_error());
while($row = mysqli_fetch_array($result1)){
$isbn=$row['myisbn'];
}

$query = 'SELECT * FROM book';
$result = mysqli_query($con, $query) or die("Error in query $query: " . mysqli_error());

while ($row = mysqli_fetch_array($result)){
if($isbn!=$row[0]){
echo $row[1]."<br>";
}
}
mysqli_close($con);             //closes the connection

?>
include“include.php”;
会话_start();
$query1='从订购的图书中选择isbn作为myisbn';
$result1=mysqli_query($con,$query1)或die(“查询$query1中的错误:”.mysqli_Error());
while($row=mysqli\u fetch\u数组($result1)){
$isbn=$row['myisbn'];
}
$query='SELECT*FROM book';
$result=mysqli_query($con,$query)或die(“query$query中的错误:”.mysqli_Error());
while($row=mysqli\u fetch\u数组($result)){
如果($isbn!=$row[0]){
echo$行[1]。“
”; } } mysqli_close($con)//关闭连接 ?>

我的脚本只在搜索结果的books_ordered表中隐藏了第一个isbn,有人知道为什么吗?我猜这和while循环中的括号有关,我就是搞不懂。或者,如果有人知道更好的方法,我们将不胜感激。谢谢。

您的“图书”数据库结构是什么?您可以轻松地执行“JOIN”命令。

在单个查询中从book表中筛选出不需要的结果会更有效,如下所示:

select b.* from book b
left join books_ordered o on b.isbn = o.isbn
where o.isbn is null

您仅将最后一个值存储在isbn美元中,因为它不是数组。 您需要将isbn添加到一个数组中,然后根据该数组检查第二个查询中的每一行

但我可能会在SQL语句中进行处理。比如:

SELECT * FROM book where isbn not in (select isbn from books_ordered)

如果我理解的很好,你只想展示那些书还没有订购

您可以使用以下SQL语句:

SELECT * FROM book WHERE isbn_row NOT IN (SELECT isbn FROM books_ordered)
首先,我们选择订购图书的isbn,方法是:
select isbn FROM books\u ordered
当我们有了这个列表,使用NOT IN子句,我们可以从书中选择所有的书,除了我们在第一句中得到isbn的书


我希望这对你有用。

非常感谢你花时间回复,你的答案与上面的答案相同,效果非常好。感谢你花时间回复,我没有尝试你的答案,因为我只是使用了上面提到的最简单的方法,但也许它会帮助其他人。