我目前正在从事图书馆项目。在其中,我使用PHP搜索书籍,从数据库中检索书籍数据并将其显示在桌子上。以下是代码。
<?php
$servername = "localhost";
$username = "root";
$password = "";
$db = "vidunena";
$search = "";
if(isset($_POST['search']))
{
$search = $_POST["search"];
}
$conn = new mysqli($servername, $username, $password, $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql="
SELECT DISTINCT b.isbn
, b.bname
, b.bauthor
, b.btype
FROM books b
WHERE CONCAT(isbn, '', bname, '', bauthor, '', btype)
LIKE '%" . $search . "%'
";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc())
{
?>
<tr>
<td><?php echo $row['isbn']?></td>
<td><?php echo $row['bname']?></td>
<td><?php echo $row['bauthor']?></td>
<td><?php echo $row['btype']?></td>
</tr>
<?php
}
} else {
echo "0 results";
}
$conn->close();
?>
这是输出。
代码工作得很好。但是我无法从表中显示的结果中选择一本书来保留该书。如何实现?
答案 0 :(得分:1)
好吧,我找到了自己的答案。
<td>
<?php
echo('<a href="my_page.php?action&serial='.$row['bname'].'">'.$row['bname'].'</a>');
?>
</td>
通过使用锚点,我能够使书名可点击。感谢您的帮助!
答案 1 :(得分:0)
如果需要,可以使用JS来完成。只需将onclick事件添加到每条记录。
PHP:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$db = "vidunena";
$search = "";
if(isset($_POST['search']))
{
$search = $_POST["search"];
}
$conn = new mysqli($servername, $username, $password, $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql=" SELECT DISTINCT books.isbn,books.bname,books.bauthor,books.btype FROM books WHERE CONCAT(isbn, '', bname, '', bauthor, '', btype) LIKE '%" . $search . "%' ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc())
{
?>
<tr onclick="select(this)">
<td><?php echo $row['isbn']?></td>
<td><?php echo $row['bname']?></td>
<td><?php echo $row['bauthor']?></td>
<td><?php echo $row['btype']?></td>
</tr>
<?php
}
} else {
echo "0 results";
}
$conn->close();
?>
JS:
function select(el) {
var isbn = el.querySelector(".content a:nth-child(1)");
var name = el.querySelector(".content a:nth-child(2)");
//... and author and type if you want
//I don´t know what exactly you meant with reserve so there you can add it...
reserve(isbn);
}
如果JS无法完成保留,那么我建议将其作为到另一个PHP脚本的链接。