。 我一直在研究这个应用程序,我有一些小问题。 MySQL查询是基本的,一切都在继续。我将放置代码,我将上传图片给您,以查看此问题的结果。所以基本上我希望查询只显示来自那个" id"我从GET方法得到了。因此,它打印出来自databasem的每一件东西并不重要。但是那些不是GET" id"的专栏是空白的。我希望他们消失并只显示与get id匹配的事先谢谢你。
<?php
require_once 'requires/dbconnect.php';
require_once 'requires/session.php';
require_once "requires/head.php";
require_once 'requires/navbar.php';
$id = $_GET['id'];
$query = $DBcon->query("SELECT * FROM borrow
LEFT JOIN users ON borrow.member_id = users.id AND borrow.member_id = '$id'
LEFT JOIN borrowdetails ON borrow.borrow_id = borrowdetails.borrow_id AND borrowdetails.member_id = '$id'
LEFT JOIN book ON borrowdetails.book_id = book.book_id
ORDER BY borrow.borrow_id DESC");
?>
<div class="container">
<table class="table table-hover table-bordered">
<tr class="active">
<td><b>Book Title</b></td>
<td><b>Username</b></td>
<td><b>Date Borrowed</b></td>
<td><b>Date Returned</b></td>
<td><b>Status</b></td>
<td></td>
</tr>
<tr>
<?php
while ($row = $query->fetch_array()) {
$id = $row['borrow_id'];
$member_id = $row['member_id'];
$book_id = $row['book_id'];
$borrow_details_id = $row['borrow_details_id'];
?>
<td><a href="bookbrief.php?id=<?php echo $book_id; ?>"><?php echo $row['book_title']; ?></a></td>
<td><a href="profile.php?id=<?php echo $member_id; ?>"><?php echo $row['username']; ?></a></td>
<td><?php echo $row['date_borrow']; ?></td>
<td><?php echo $row['date_return']; ?> </td>
<td><?php echo $row['borrow_status'];?></td>
<?php
if($row['borrow_status'] == 'pending')
{ ?>
<td class="danger">Pending</td>
<?php }
else if ($row['borrow_status'] == 'returned') { ?>
<td class="success">Returned</td>
<?php } ?>
</tr>
<?php } ?>
</table>
</div>`
答案 0 :(得分:1)
我在所有JOIN之后都没有看到WHERE子句。
WHERE borrow.member_id=$id;
(这不是你应该写入查询的内容。出于安全原因,你需要验证/清理/参数化$ _GET。)
对于您的情况,这一次,在将其放入查询之前,您可以放弃这样的清理:
$id = intval($_GET['id']);
...但是肯定会读到参数化。