这是我的mysql查询,目的是从tblInventory检索BRAND,PATTERNS,AR和WIDTH,其中我的SZ与我的输入SZ匹配。
CREATE TABLE `tblInventory` (
`BRAND` varchar(100) DEFAULT NULL,
`PATTERNS` varchar(100) DEFAULT NULL,
`SZ` int(11) DEFAULT NULL,
`AR` int(11) DEFAULT NULL,
`WIDTH` int(11) DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `tblInventory` (`BRAND`, `PATTERNS`, `AR`, `WIDTH`) VALUES
('OHTSU FALKEN', 'FKU', 70, 165),
('OHTSU FALKEN', 'ZE912', 60, 165),
('OHTSU FALKEN INDO', 'SN828', 70, 155),
('OHTSU FALKEN', 'SN816', 70, 145),
('OHTSU FALKEN', 'SN807', 80, 145),
('OHTSU FALKEN', 'SN807', 80, 155);
SELECT DISTINCT BRAND, PATTERNS, AR, WIDTH FROM tblInventory WHERE SZ='$b_size' ORDER BY SZ ASC
用于将数据存储到数组中的JSON方法
$result = mysqli_query ($mydatabase, $tyre_query);
$i = 0;
while ($row = mysqli_fetch_assoc($result)) {
$tyreArray[$i] = array(
"BRAND" =>$row['BRAND'],
"PATTERNS" =>$row['PATTERNS'],
"AR" =>$row['AR'],
"WIDTH" =>$row['WIDTH'],
);
++$i;
}
echo json_encode($tyreArray);
然后数组将传回jQuery并将每条记录追加到我的选择框中。
function(data)
{
var json = $.parseJSON(data);
for (var i = 0; i < json.length; i++) {
BRAND = json[i]["BRAND"]
MODEL = json[i]["PATTERNS"]
AR = json[i]["AR"]
WIDTH = json[i]["WIDTH"]
//alert(MODEL)
$('#cmbTBrand').append($('<option/>', {
value: BRAND,
text : BRAND
}));
$('#cmbTModel').append($('<option/>', {
value: MODEL,
text : MODEL
}));
$('#cmbTWidth').append($('<option/>', {
value: WIDTH,
text : WIDTH
}));
$('#cmbTProfile').append($('<option/>', {
value: AR,
text : AR
}));
}
})
count = 1;
当我将每个FIELD附加到我的选择框中时,将显示重复的数据。
如何避免选择框中的数据重复?
答案 0 :(得分:0)
您可以为每个SELECT框运行单独的查询,并在GROUP BY
查询中添加SELECT
子句,以防止重复数据。
SELECT BRAND
FROM tblInventory
WHERE SZ='$b_size'
GROUP BY BRAND
SELECT PATTERNS
FROM tblInventory
WHERE SZ='$b_size'
GROUP BY PATTERNS
等等。
您可以通过首先构建一组数组(实际上是对象)来表示每个选择框的唯一选项,然后再输出另一个输出每个选择框的循环,而不是修改您的查询。 >
var json = $.parseJSON(data);
var brands = {}, models = {};
for (var i = 0; i < json.length; i++) {
BRAND = json[i]["BRAND"]
MODEL = json[i]["PATTERNS"]
brands[BRAND] = BRAND;
models[MODEL] = MODEL;
}
// now you have a list of unique brands and models