搜索查询不显示结果

时间:2013-08-19 23:13:14

标签: php mysql search

我有一个搜索引擎,但问题是搜索引擎没有显示搜索结果,这里的数据库连接正确是代码:

PHP:

if (isset($_POST['search'])) {
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i", "", $searchq);
$query = mysql_query("SELECT * FROM tReference WHERE sReference LIKE '%$searchq%' OR sSearch LIKE '%$searchq%' OR sSort LIKE '%$searchq%'") or die("La Recherche est impossible");
$count = mysql_num_rows($query);


if ($count == 0) {
    $output = "Aucun Résultat Pour Cette Recherche!";
              //English Trans : No results have been Found!

}
else 
{
        $sReference = $count['sReference'];
        $output.= '<div><ul><li><a target="_blanc" href="refrences.php?reference=' . $sReference . '" title="' . $sReference . '">' . $sReference . '</a></li></ul></div>';
}

}

HTML:

<div id="searchd">
<div class="searchc">
<form action="reference.php" method="post">
<input type="text" name="search" palceholder="Recherhcer...">
<input type="submit" Value="Ok">
<div class="clear"></div>
</form>
</div>
<div id="output">
<?php echo ($output); ?>
</div>
</div>

并且事先感谢All!

3 个答案:

答案 0 :(得分:1)

您实际上并未处理查询结果。 您必须从返回的结果集中获取每一行,然后使用html输出中返回的字段。

试试这个: -

if (isset($_POST['search'])) {
    $searchq = $_POST['search'];
    $searchq = preg_replace("#[^0-9a-z]#i", "", $searchq);
    $query = mysql_query(
        "SELECT * FROM tReference 
         WHERE sReference LIKE '%$searchq%' OR 
               sSearch LIKE '%$searchq%' OR 
               sSort LIKE '%$searchq%'") or die("La Recherche est impossible");

    if (mysql_num_rows($query) == 0) {
        $output = "Aucun Résultat Pour Cette Recherche!";
              //English Trans : No results have been Found!
    } else {

        $output .= '<div><ul>';
        while ( $row = mysql_fetch_object($query) ) {
            $output .= '<li>';
            $output .= '<a target="_blanc" href="refrences.php?reference=' . $row->sReference . '" '; 
            $output .= '" title="' . $row->sReference . '">' . $row->sReference . '</a>';
            $output .= '</li>';
        }
        $output .= '</ul></div>';
    }

}

答案 1 :(得分:0)

已经完成了Guys,感谢所有这里的解决方案:

if (isset($_POST['search'])) {
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i", "", $searchq);
$query = mysql_query(
"SELECT * FROM tReference 
WHERE sReference LIKE '%$searchq%' OR 
   sSearch LIKE '%$searchq%' OR 
   sSort LIKE '%$searchq%'") or die("La Recherche est impossible");

if (mysql_num_rows($query) == 0) {
$output = "Aucun Résultat Pour Cette Recherche!";
} else {

$output .= '<div><ul>';
while ( $row = mysql_fetch_assoc($query) ) {

$sReference = $row['sReference'];

$output .= '<li>';
$output .= '<a target="_blanc" href="refrences.php?reference="' . $sReference . '" '; 
$output .= '" title="' . $sReference . '">' . $sReference . '</a>';
$output .= '</li>';
}
$output .= '</ul></div>';
}

}

感谢 @RiggsFolly ,感谢大家。

答案 2 :(得分:0)

你的代码毫无意义。首先,我建议您在单独的安全页面上使用面向对象的PHP。然后你的代码看起来应该更像:

//secure.php
<?php
 function db(){
   return new mysqli('host', 'user', 'password', 'database');
 }
?>

//reference.php
include 'secure.php'; $output = '';
if(isset($_POST['sub'])){
  $db = db(); $searchq = $_POST['search'];
  // What is this for? --->>> $searchq = preg_replace('/[^0-9a-z]/i', "", $searchq);
   $query = $db->query("SELECT * FROM tReference WHERE sReference LIKE '%$searchq%' || sSearch LIKE '%$searchq%' || sSort LIKE '%$searchq%'");
   if($query->num_rows < 1){
     die('Aucun Résultat Pour Cette Recherche!');
   }
   else{
    while($row = $query->fetch_assoc()){
      $sref = $row['sReference'];
      $output.= "<li><a target='_blank' href='refrences.php?reference=$sref' title='$sref '>$sref</a></li>";
   }
   $query->free(); $db->close();
}
<div id='searchd'>
  <div class='searchc'>
    <form action='reference.php' method='post'>
      <input type='text' name='search' placeholder='Recherhcer...' />
      <input type='submit' value='Ok' name='sub' />
      <div class='clear'></div>
    </form>
  </div>
  <ul id='output'><?php echo $output; ?></ul>
</div>