PHP(5.5) - 使用MySQLi进行数据库搜索 - 获取datalist但没有输出

时间:2015-11-11 14:05:05

标签: php mysqli

我只是在学习如何做到这一点所以请原谅我的无知!

以下是我的测试网站: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)) {

我的如果总是去别的“没有找到”

有任何帮助吗?我学习的方式是做 - 所以这是试验和错误,直到我弄明白!

1 个答案:

答案 0 :(得分:1)

您的表格1KaraokeDJ.com被解释为DatabaseName.TableName

要避免这种情况,请转义表名

Select * from `1KaraokeDJ.com` Where ...