我正在通过模式中的选择过滤产品。我能够按地区进行过滤:南部,北部,中部和西部。但是我需要按地区过滤,按产品类别过滤。这是我的查询
getProdutosregiao(id, categoria_id) {
return new Promise<Produto[]>((resolve, reject) => {
let sql = "SELECT TP.NOM_PATHIMAGEM, TP.NOM_PRODUTO, TS.NOM_SUBCATEGORIA,
TP.DESC_PRODUTO, TP.VAL_PRODUTO, TP.CATEGORIA_ID " +
"FROM TB_PRODUTO TP " +
"INNER JOIN TB_SUBCATEGORIA TS " +
"ON TS.ID = TP.SUBCATEGORIA_ID " +
"INNER JOIN TB_CATEGORIA TC " +
"ON TC.ID = TP.CATEGORIA_ID " +
"WHERE REGIAO_ID = " + id +
" AND TC.ID = " + categoria_id ;
// " AND SUBCATEGORIA_ID = ";
this.executeQuery(sql).then(data => {
let regions = [];
if (data!= undefined)
data.forEach(function (row) {
let region: Produto = { nom_pathimagem: row[0], nom_produto: row[1],
nom_subcategoria: row[2], desc_produto: row[3], val_produto: row[4],
desc_desconto: row[5], desc_experiencia: row[6], nom_endereco: row[7],
nom_complemento: row[8], nom_bairro: row[9], nom_cidade: row[10], cod_uf:
row[11], num_cep: row[12], desc_funcionamento: row[13],
nom_pathimagem_desc: row[14], regiao_id: row[15], categoria_id: row[16] }
regions.push(region);
});
resolve(regions);
}).catch(error => {
console.log(error);
});
});
Filtro-Modal.TS
selecionaregiao(id, categoria_id) {
this.db.getProdutosregiao(id, categoria_id)
.then(data => this.produtos = data)
.catch(error => console.log('Something want wrong!'));
console.log('passou em tudo')
}`enter code here`
Filtro-Modal-HTML
<ion-select class="selectclass" (ionChange)="selecionaregiao($event)"
[(ngModel)]="regiao" >
<ion-option *ngFor="let regiao of regioes" [value]="regiao.id"
class="optionclass">{{regiao.nom_regiao}}</ion-option>
</ion-select>
但是我得到了错误:“错误错误:没有这样的列:未定义。”而且,如果我删除参数(cateogira_id),它将正常工作并仅按区域过滤。我传递的参数错误吗?谢谢您的帮助,早上好!
答案 0 :(得分:0)
您只将$ event传递给方法
(ionChange)="selecionaregiao($event)
如果categoria_id不属于事件的一部分,则需要将其作为参数传递给您的方法。