简体   繁体   English

仅显示数据库表中的选定结果

[英]Display selected results only from the database table

I would like to display only a selected result on my php page. 我想在我的php页面上只显示一个选定的结果。

This is my php code: 这是我的PHP代码:

$bookdetsql = "
SELECT b.bookISBN
     , b.bookTitle
     , b.bookYear
     , b.catID
     , b.pubID
     , p.pubName
     , p.location
     , c.catDesc
     , b.bookPrice 
  FROM nbc_book b
  LEFT 
  JOIN nbc_category c 
    ON b.catID = c.catID 
  LEFT 
  JOIN nbc_publisher p 
    ON b.pubID = p.pubID
";


$bookdetrs = mysqli_query($conn, $bookdetsql) or die(mysqli_error($conn));

$bookdetnum = mysqli_num_rows($bookdetrs);

if($bookdetnum >= 1 ){
echo "<div style='margin: 0 0 10px 0; font-weight: bold;'>$bookdetnum record(s) found!</div>";
while ($row = mysqli_fetch_assoc($bookdetrs)) {
    echo "<tr>";
    echo "<td><center>" . $row['bookTitle']."</a></center></td>";
    echo "<td><center>" . $row['bookYear']."</center></td>";
    echo "<td><center>" . $row['catDesc']."</center></td>";
    echo "<td><center>" . $row['bookPrice']."</center></td>";
    echo "<td><center>" . $row['pubName']."</center></td>";
    echo "<td><center>" . $row['location']."</center></td>";
    echo "</tr>";
}

} else {
   echo "<b>Books not found!</b>";
}

Actually this code above is displaying the whole list of records actually. 实际上这个代码实际上是显示整个记录列表。 I only want it to display selected record which i clicked on my first php page. 我只希望它显示我在第一个php页面上点击的所选记录。

Pleas Replace left join to join because left join is fetch matching and unmatch both record but when you use simple join it is work on inner join and fetch only match record according to your requirement   


$bookdetsql = "SELECT bookISBN, bookTitle, bookYear, nbc_book.catID, nbc_book.pubID, pubName,  location, catDesc, bookPrice FROM nbc_book JOIN nbc_category ON nbc_book.catID = nbc_category.catID JOIN nbc_publisher ON nbc_book.pubID = nbc_publisher.pubID";

$bookdetrs = mysqli_query($conn, $bookdetsql) or die(mysqli_error($conn));

$bookdetnum = mysqli_num_rows($bookdetrs);

if($bookdetnum >= 1 ){
echo "<div style='margin: 0 0 10px 0; font-weight: bold;'>$bookdetnum record(s) found!</div>";
while ($row = mysqli_fetch_assoc($bookdetrs)) {
    echo "<tr>";
    echo "<td><center>" . $row['bookTitle']."</a></center></td>";
    echo "<td><center>" . $row['bookYear']."</center></td>";
    echo "<td><center>" . $row['catDesc']."</center></td>";
    echo "<td><center>" . $row['bookPrice']."</center></td>";
    echo "<td><center>" . $row['pubName']."</center></td>";
    echo "<td><center>" . $row['location']."</center></td>";
    echo "</tr>";
}

} else {
   echo "<b>Books not found!</b>";
}

How did you get the values frmo the first page? 你是如何从第一页获得价值的? GET or POST? GET还是POST?

when you have the value(s), you can add an where clause to your SELECT Statement 当您有值时,可以在SELECT语句中添加where子句

$bookdetsql = "SELECT bookISBN, bookTitle, bookYear, nbc_book.catID, nbc_book.pubID, pubName,  location, catDesc, bookPrice 
                 FROM nbc_book 
            LEFT JOIN nbc_category ON nbc_book.catID = nbc_category.catID 
            LEFT JOIN nbc_publisher ON nbc_book.pubID = nbc_publisher.pubID
                WHERE bookISBN = '" . $_GET["bookISBN"] . "'";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM