我有三个页面search.php处理sql查询,index.php有自己的搜索表单,connect.php有数据库连接信息。我正在关注此视频中的信息 https://www.youtube.com/watch?v=gf32KXTP0C4
首先,我确保查询在phpMyAdmim中有效 我用了一个测试。如您所见,它返回117结果
以关键字作为名称的表单
<form action="search.php" method="get">
<label>
Search
<input type="text" name="keywords" autocomplete="off">
</label>
<input type="submit" value="Search">
Search.php如下,它应该在表格字符中搜索输入到表单中的内容,根据它们回答结果的大小然后列出它们
<?php
require_once 'connect.php';
if(isset($_GET['keywords'])) {
$keywords = $db->escape_string($_GET['keywords']);
$query = $db->query("
SELECT charactor_name, vault_number, history
FROM charactor
WHERE charactor_name like '%{keywords}%'
");
?>
<div class="result-count">
Found <?php echo $query->num_rows; ?> results
</div>
<?php
if($query->num_rows) {
while($r = $query->fetch_object()) {
?>
<div class="result">
<a href="#"><?php echo $r->charactor_name; ?></a>
</div>
<?php
}
}
}
connect.php如下 我使用http://php.net/manual/en/mysqli.construct.php中的代码来测试if语句中的数据库连接,以确保connectoion正常工作。一旦我知道它正在工作,我就把它评论出来了
<?php
$db = new mysqli('localhost', 'root', '', 'csc8417');
/*
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Success... ' . $db->host_info . "\n";
$db->close();
?>*/
无论我运行什么查询,我总是得到0结果,如此处所示
它应该回来
答案 0 :(得分:3)
请点击这里:
$query = $db->query("
SELECT charactor_name, vault_number, history
FROM charactor
WHERE charactor_name like '%{keywords}%'
");
关键字应为$ keywords
答案 1 :(得分:0)
if( $query->num_rows() ) {
使用$query->num_rows()
代替$query->num_rows
?