将产品存储在MYSQL数据库中,然后搜索并过滤它们?

时间:2014-11-24 14:10:16

标签: php html mysql css

我的任务是为我的一个朋友建立一个可搜索的列表,我主要是一个前端设计师,所以我只知道极端的基础知识以及我通过书籍和教程找到的任何内容。

至于问题,有没有办法在MySQL数据库中创建可以容纳一些标签的项目,例如高度,宽度,厚度,颜色,公司,类型,类别和它的个人资料图像?从理论上讲,我想建立一个我已经拥有的注册页面,我的朋友可以用来自己添加产品。将项目创建为“product s”中的“项目”是一种有效的方法吗?

CREATE TABLE `admin`.`productss` (
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `type` VARCHAR(30) NOT NULL,
    `category` VARCHAR(50) NOT NULL,
    `thickness` CHAR(128) NOT NULL,
    `height` CHAR(128) NOT NULL,
    `color` CHAR(128) NOT NULL,
    `material` CHAR(128) NOT NULL,
) ENGINE = InnoDB;

或者语法不允许我这样做?

我目前有一个使用''数据库的解决方案,或者像搜索之前隐藏的长列表,但这只能使用HTML,CSS,JS完成,我正在寻找一个更多优雅的解决方案。

===========================

使用HTML / CSS / JS进行工作过滤的小提示: http://fiddle.jshell.net/j1by6xn1/10/

'假'数据库列表的小提琴: http://jsfiddle.net/5ky8gx4L/

===========================

+----+-----+----+
|NAME|GREEN|15in|
+----+-----+----+
|NAME| RED |10in|
+----+-----+----+

按尺寸“15英寸”过滤后,它只显示15英寸尺寸标签的产品。

+----+-----+----+
|NAME|GREEN|15in|
+----+-----+----+

1 个答案:

答案 0 :(得分:0)

您可以在显示的表productss中插入行,然后可以使用WHERE子句对其进行过滤。这将属于以下几行:

//This shows all the products with type 'My Type' :
SELECT * FROM `productss` WHERE `type` = 'My Type' 

//This shows all the products where the category has the text 'abc' in it (so also 12abc34 or 12abc :
SELECT * FROM `productss` WHERE `category` LIKE '%abc%'

//This shows all the products where the color is 255:
SELECT * FROM `productss` WHERE `color` = 255  

这是用于后端过滤,前端的简洁方法是使用AJAX从JavaScript调用PHP脚本,并使用需要过滤的变量。

另一种方法是使用jQuery,打印列表中的所有行并添加数据属性;然后,您的li标记看起来像:

<li data-color='255' data-category='Something' data-type='My Type'>Hello</li>

值data-color,category等将直接来自您的数据库。然后你可以这样过滤它们:

$(function(){
  $(".sortButton").click(function(){
    var filterByColor = $(this).attr('colorfilter'); //say this value is the color you want to filter by
    $("li").hide(); //hide all options
    $("li[data-color="+filterByColor+"]").show(); //show the options that match the filter
  });
});