【问题标题】:Search box for website网站搜索框
【发布时间】:2017-03-17 09:31:59
【问题描述】:

我已经尝试过这段代码,当我在basintap页面时,这仅适用于一个页面,但我想知道当我在另一个页面时如何搜索任何内容?

<?php
$query = $_GET['query']; 
$min_length = 2;
if(strlen($query) >= $min_length){ 
$sql ="Select * from basintap where keywords like '%keywords%'";
$run_query = mysqli_query($con,$sql); 
if(mysqli_num_rows($run_query) > 0){
while($row = mysqli_fetch_array($run_query)){
$id    = $row['id'];
$cat   = $row['cat'];
$brand = $row['brand'];
$name = $row['name'];
$image = $row['image'];
echo "<div class='col-md-4'>
<div class='panel panel-info'>
<div class='panel-heading'>$name</div>
<div class='panel-body'>
<img src='basintap/$image' style='width:160px; height:250px;'/>
</div>
</div>
</div>  ";
}
}
?>

【问题讨论】:

    标签: javascript php mysql angularjs ajax


    【解决方案1】:

    如果您每页有一个单独的表,那么您将不得不重组您的数据库,以便使用自制的解决方案来解决您的问题。将所有页面保存在一个表中,并通过单独的字段和/或索引进行区分。

    或者,如果太麻烦,只需将Algolia 插入您的网站即可。

    【讨论】:

    • 我们只有一个数据库,但有不同的表。我们需要一种算法来从这些表中搜索产品。
    • 每个“页面”是否有单独的表格?还是桌子的数量是固定的?
    • 我每页有单独的表格。
    • 那是糟糕的数据库设计。按照我在答案中所说的那样,重构你的数据库,使每个页面都在一个表中,每页用一个键分隔,然后只对那个表执行搜索。
    • 或者使用第三方搜索服务,比如我在回答中提到的 Algolia。
    【解决方案2】:

    您可能应该将查询中的“basintap”字符串更改为您想要搜索的表名。

    $sql ="Select * from [place-table-name-here] where keywords like '%keywords%'";
    

    【讨论】:

    • 如果我喜欢这样的话,我的网站上有很多表格,那么搜索查询将花费大量时间。是否有任何简单的算法来搜索查询需要更少的时间。
    • 我们只有一个数据库,但有不同的表。我们需要一种算法来从这些表中搜索产品。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    相关资源
    最近更新 更多