PHP使用GET搜索带有类别的mysql数据库

时间:2015-03-28 16:36:40

标签: php mysql categories

作为一个新项目,我最近尝试创建一个网店,看看它是如何工作的。我已经使用php和select标签显示主div中出售的所有新商品。当用户点击侧边栏中的某个类别时,我也只能显示某个类别的项目。当用户点击侧边栏时,页面会重新加载,但是对于网址,它会添加?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语句才能看到选择了哪个选项。此外,如果有更好的选择,这样的简单搜索系统或更安全,当然很好。这就是我到目前为止一直在做的事情

这是我目前的表btw的截图 Here is my current table

1 个答案:

答案 0 :(得分:0)

首先,我建议你不要把字符放在网址中,而是id。它更安全,更简单,并且没有错误的url编码或其他。 而你只需要施放你得到的身份证。使用id而不是字符串在mysql数据库中搜索也会更快:)

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

示例:

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

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