根据Ionic CLI 4.5.0中的条件从MySQL数据库获取数据

时间:2018-12-15 18:37:56

标签: php mysql ionic-framework

我可以使用以下方法从离子数据库中的MySQL数据库中获取数据:

market.ts ->提供程序

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';

@Injectable()
export class MarketProvider {

  constructor(public http: HttpClient) {}

  getMarket(){
    return this.http.get<any[]>('https://www.test.com/fetchMarket.php')
  }

}

fetchMarket.php

$mysqli =mysqli_connect("localhost", "username", "password", "database");

mysqli_set_charset($mysqli,"utf8");

$query = "SELECT * FROM market";
$dbresult = $mysqli->query($query);

while($row = $dbresult->fetch_array(MYSQLI_ASSOC)){

    $data[] = array(
        'id' => $row['mar_id'],
        'name' => $row['mar_name'],
    );
}
if($dbresult){
    $result = json_encode($data);             
}
else {
    $result = "{'success':false}";
}
echo $result;

market.ts

import { Component } from '@angular/core';
import { NavController, NavParams} from 'ionic-angular';

import { MarketProvider} from '../../providers/market/market'

@Component({
  selector: 'page-market',
  templateUrl: 'market.html',
})
export class MarketPage {

  public allMarket = [];

  cat_id: string;
  location_id: string;
  gender_id: string;

  constructor(private Market : MarketProvider, public navCtrl: NavController, public navParams: NavParams) {

    this.cat_id = navParams.get('cat_id');
    this.gender_id= navParams.get('gender_id');
    this.location_id= navParams.get('location_id');

  }

  ionViewDidLoad() {
    this.Market.getMarket()
    .subscribe((response)=>{this.allMarket = response});
  }

}

market.html

<button ion-button block *ngFor="let market of allMarket">
    {{market.name}}
</button>

现在,我想问一个问题,即可以根据特定条件从MySQL数据库获取数据,例如:

我可以获取这样的数据并将其显示在 market.html

中吗
$query = "SELECT * FROM market where category_id = $cat_id and gender_id = $gen_id and location_id = $location_id";

简而言之,我想根据传递给PHP文件以生成JSON文件并将其显示在market.html页面中的值从数据库中获取数据。

现在我获得了所有市场,那么有什么办法可以只获得我根据其性别ID,地理位置ID和类别ID指定的市场。

这是我大多数朋友问的一个问题,但我仍然没有找到解决方案。

谢谢!

0 个答案:

没有答案