我只是在学习如何做到这一点所以请原谅我的无知!
以下是我的测试网站:http://webtestkit.com/1KaraokeDJ/index.php
首先,我在一个学习示例中找到了这段代码,而且代码运行得很好。 (http://www.mostlikers.com/2013/08/search-engine.html) - 没问题。我甚至制作了样本数据库并检查了所有工作正常。
现在我想改变它以达到我的目的(卡拉OK搜索)......
这是我的代码:
<?php
include("connect.php");
session_start();
if(isset($_POST['submit']))
{
$search=$_POST['search'];
$_SESSION['title']= $search;
if(($_SESSION['title'])!="")
{ header("location:index.php"); }
else
{ echo "<script> alert('Please enter something to search for') </script>"; }
}
?>
<html>
<head>
<title>1KaraokeDJ.com</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="login">
<form method="post">
<p><img src="top.jpg" /></p>
<p>
<?php if(isset($_SESSION['title'])) { ?>
<input name="search" type="search" list="searchkey" value="<?php echo $_SESSION['title'];?>" class="search" />
<?php } else { ?>
<input name="search" type="search" list="searchkey" placeholder="Just type your text here and press enter - ex : Abba" class="search" />
<?php } ?>
</p>
<datalist id="searchkey">
<?php
$tile=$db->query("SELECT * FROM `1KaraokeDJ.com`");
while($storetitle=mysqli_fetch_object($tile))
{ ?>
<option value="<?php echo $storetitle->title ?>">
<?php } ?>
</datalist>
<p><input type="submit" name="submit" id="click" class="searchbutton" value="Karaoke Search" /></p>
<?php if(isset($_SESSION['title'])) {
if(($_SESSION['title']!=""))
{
$data=$_SESSION['title'];
$view=$db->query("select * from 1KaraokeDJ.com where title like '%$data%' limit 10");
$check=mysqli_num_rows($view);
if($check!="")
{
while($descri=mysqli_fetch_object($view))
{
?>
<div class="reslt">
<h3 id="resuil-title"><?php echo $descri->title; ?></h3>
<p class="Description">
<?php $description = str_replace($data, '<span class="highlight">'.$data."</span>", $descri->artist);
echo $description; ?>
<p>
<hr>
</div>
<?php } } else { ?>
<div class="reslt">
<h3 id="resuil-title">Nothing fond!</h3>
<p class="Description">Try changing your search terms<p><hr>
</div>
<?php } } } ?>
</form>
</div>
</body>
</html>
搜索字段在下拉列表中查找数据,因此连接正常并且搜索有效。
我想我理解大部分代码,但我似乎不明白这一点:
$view=$db->query("select * from 1KaraokeDJ.com where title like '%$data%' limit 10");
$check=mysqli_num_rows($view);
if($check!="")
{ while($descri=mysqli_fetch_object($view)) {
我的如果总是去别的“没有找到”
有任何帮助吗?我学习的方式是做 - 所以这是试验和错误,直到我弄明白!
答案 0 :(得分:1)
您的表格1KaraokeDJ.com
被解释为DatabaseName.TableName
要避免这种情况,请转义表名
Select * from `1KaraokeDJ.com` Where ...