如何选择检索到的数据

时间:2019-02-08 19:45:41

标签: php mysql

我目前正在从事图书馆项目。在其中,我使用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();
?>

这是输出。

enter image description here

代码工作得很好。但是我无法从表中显示的结果中选择一本书来保留该书。如何实现?

2 个答案:

答案 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脚本的链接。