在PHP中命令sql结果升序

时间:2015-11-18 16:11:14

标签: php mysql

我有这个代码。问题是:它不遵守“按名称命名ASC”。关于查询,我不知道为什么。它发生在所有3个功能中。 这是代码:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once("dbconfig.php");
class location extends dbconfig {
    public static $data;
    function __construct() {
        if (in_array('__construct', get_class_methods(get_parent_class($this)))) {
            parent::__construct();
        }
    }
    public static function getCountries() {
        try {
            $query = "SELECT id, name FROM countries ORDER BY name ASC";
            $result = dbconfig::run($query);
            if(!$result) {
                throw new exception("Country not found.");
            }
            $res = array();
            while($resultSet = mysqli_fetch_assoc($result)) {
                $res[$resultSet['id']] = $resultSet['name'];
            }
            $data = array('status'=>'success', 'tp'=>1, 'msg'=>"Countries fetched successfully.", 'result'=>$res);
        } catch (Exception $e) {
            $data = array('status'=>'error', 'tp'=>0, 'msg'=>$e->getMessage());
        } finally {
            return $data;
        }
    }
    public static function getStates($countryId) {
        try {
            $query = "SELECT id, name FROM states WHERE country_id=".$countryId." ORDER BY name ASC";
            $result = dbconfig::run($query);
            if(!$result) {
                throw new exception("State not found.");
            }
            $res = array();
            while($resultSet = mysqli_fetch_assoc($result)) {
                $res[$resultSet['id']] = $resultSet['name'];
            }
            $data = array('status'=>'success', 'tp'=>1, 'msg'=>"States fetched successfully.", 'result'=>$res);
        } catch (Exception $e) {
            $data = array('status'=>'error', 'tp'=>0, 'msg'=>$e->getMessage());
        } finally {
            return $data;
        }
    }
    public static function getCities($stateId) {
        try {
            $query = "SELECT id, name FROM cities WHERE state_id=".$stateId." ORDER BY name ASC";
            $result = dbconfig::run($query);
            if(!$result) {
                throw new exception("City not found.");
            }
            $res = array();
            while($resultSet = mysqli_fetch_assoc($result)) {
                $res[$resultSet['id']] = $resultSet['name'];
            }
            $data = array('status'=>'success', 'tp'=>1, 'msg'=>"Cities fetched successfully.", 'result'=>$res);
        } catch (Exception $e) {
                $data = array('status'=>'error', 'tp'=>0, 'msg'=>$e->getMessage());
        } finally {
            return $data;
        }
    } 
}

的Javascript

    function ajaxCall() {
    this.send = function(data, url, method, success, type) {
        type = type||'json';
        var successRes = function(data) {
            success(data);
        };
        var errorRes = function(e) {
            console.log(e);
            alert("Error found \nError Code: "+e.status+" \nError Message: "+e.statusText);
        };
        $.ajax({
            url: url,
            type: method,
            data: data,
            success: successRes,
            error: errorRes,
            dataType: type,
            timeout: 60000
        });
    }
}

function locationInfo() {
    var rootUrl = "../PDOClasses/CountriesList/api.php";
    var call = new ajaxCall();
    this.getCities = function(id) {
        $(".cities option:gt(0)").remove();
        var url = rootUrl+'?type=getCities&stateId=' + id;
        var method = "post";
        var data = {};
        $('.cities').find("option:eq(0)").html("Carregando..");
        call.send(data, url, method, function(data) {
            $('.cities').find("option:eq(0)").html("Selecione a cidade");
            if(data.tp == 1){
                $.each(data['result'], function(key, val) {
                    var option = $('<option />');
                    option.attr('value', key).text(val);
                    $('.cities').append(option);
                });
                $(".cities").prop("disabled",false);
            }
            else{
                alert(data.msg);
            }
        });
    };

    this.getStates = function(id) {
        $(".states option:gt(0)").remove(); 
        $(".cities option:gt(0)").remove(); 
        var url = rootUrl+'?type=getStates&countryId=' + id;
        var method = "post";
        var data = {};
        $('.states').find("option:eq(0)").html("Carregando..");
        call.send(data, url, method, function(data) {
            $('.states').find("option:eq(0)").html("Selecione o estado");
            if(data.tp == 1){
                $.each(data['result'], function(key, val) {
                    var option = $('<option />');
                    option.attr('value', key).text(val);
                    $('.states').append(option);
                });
                $(".states").prop("disabled",false);
            }
            else{
                alert(data.msg);
            }
        }); 
    };

    this.getCountries = function() {
        var url = rootUrl+'?type=getCountries';
        var method = "post";
        var data = {};
        $('.countries').find("option:eq(0)").html("Carregando..");
        call.send(data, url, method, function(data) {
            $('.countries').find("option:eq(0)").html("Selecione o país");
            console.log(data);
            if(data.tp == 1){
                $.each(data['result'], function(key, val) {
                    var option = $('<option />');
                    option.attr('value', key).text(val);
                    $('.countries').append(option);
                });
                $(".countries").prop("disabled",false);
            }
            else{
                alert(data.msg);
            }
        }); 
    };
}

$(function() {
    var loc = new locationInfo();
    loc.getCountries();
    $(".countries").on("change", function(ev) {
        var countryId = $(this).val();
        if(countryId != ''){
            loc.getStates(countryId);
        }
        else{
            $(".states option:gt(0)").remove();
        }
    });
    $(".states").on("change", function(ev) {
        var stateId = $(this).val();
        if(stateId != ''){
            loc.getCities(stateId);
        }
        else{
            $(".cities option:gt(0)").remove();
        }
    });
});

和api

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
ob_start();
header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json');
include_once("location.php");
$loc = new location();          
try {
    if(!isset($_GET['type']) || empty($_GET['type'])) {
        throw new exception("Type is not set.");
    }
    $type = $_GET['type'];
    if($type=='getCountries') {
        $data = $loc->getCountries();
    }
    if($type=='getStates') {
        if(!isset($_GET['countryId']) || empty($_GET['countryId'])) {
            throw new exception("Country Id is not set.");
        }
        $countryId = $_GET['countryId'];
        $data = $loc->getStates($countryId);
    }
    if($type=='getCities') {
        if(!isset($_GET['stateId']) || empty($_GET['stateId'])) {
            throw new exception("State Id is not set.");
        }
        $stateId = $_GET['stateId'];
        $data = $loc->getCities($stateId);
    }
} catch (Exception $e) {
    $data = array('status'=>'error', 'tp'=>0, 'msg'=>$e->getMessage());
} finally {
    echo json_encode($data);
}
ob_flush();
是的,有人能帮帮我吗?我大约3个小时尝试asort和其他功能,但没有成功。

javascript&gt; api> PHP

0 个答案:

没有答案