【问题标题】:PHP search mysql database with categories using GETPHP使用GET搜索带有类别的mysql数据库
【发布时间】:2015-03-28 16:36:39
【问题描述】:

作为一个新项目,我最近尝试创建一个网上商店,只是为了看看它是如何工作的。我已经使用 php 和一个 select 标签在主 div 中显示了所有正在销售的新项目。当用户单击侧边栏中的类别时,我还能够仅显示某个类别的项目。当用户单击侧边栏时,页面会重新加载,但会在 url 中添加 ?category=car 或其他类别。之后我使用 $_GET['

if(isset($_GET['category'])){
     $testsearch = htmlspecialchars($_GET['category']);
     $sqlselect = "SELECT * FROM items_sale INNER JOIN item_list ON items_sale.item_id = item_list.item_id  INNER JOIN user_list ON items_sale.user_id = user_list.user_id  INNER JOIN categories ON items_sale.categorie_id = categories.category_id where category = '$testsearch'";
}else{
    $sqlselect = "SELECT * FROM items_sale INNER JOIN item_list ON items_sale.item_id = item_list.item_id  INNER JOIN user_list ON items_sale.user_id = user_list.user_id  INNER JOIN categories ON items_sale.categorie_id = categories.category_id";
}

我似乎无法开始工作的是还添加类似搜索栏的内容,用户可以在其中搜索卖家名称或商品名称,同时停留在所选类别中。

有没有简单的方法来做到这一点?因为我只能在彼此之间想到一堆 If 语句,以查看选择了哪个选项。此外,如果对于像这样的简单搜索系统有更好的选择或更安全,那当然可以。到目前为止,我就是这样做的

这是我当前表格的屏幕截图

【问题讨论】:

标签: php mysql categories


【解决方案1】:

首先,我建议您不要在 url 中添加字符,而是在 id 中添加字符。使用 url 编码或其他方式更安全、更简单且没有错误。 你只需要投射你得到的 id 。使用 id 在 mysql 数据库中搜索也比使用字符串更快:)

对于您的问题,您可以将您的类别名称(或 id :))放在一个隐藏输入的表单中。

例子:

<form>
    <input type="text" id="seller_name">
    <input type="hidden" id="category" value="<?php echo (int)$_GET['category']?>">
</form>

在您的服务器端,当您收到请求时,您会检查您的 sql 请求中的类别和卖家名称(例如,使用 2...)

【讨论】:

    猜你喜欢
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 2014-05-26
    • 2019-02-20
    • 2012-12-09
    • 1970-01-01
    相关资源
    最近更新 更多