Как получить несколько строк таблицы из объекта JSON в приложение

0

Как я могу получить несколько строк таблицы из базы данных MySQL в приложение объектом JSON.

Получение одной строки со стола хорошо работает для меня! Но я не могу получить несколько строк, он выдает сообщение об ошибке "SyntaxError: Неожиданный токен {в JSON в позиции..."

Как мне это достичь, помогите мне!

Это мой угловой код.. (здесь я передаю переменную и получаю соответствующие строки и получаю их на консоль.)

  $scope.companySelected = function(emp_Comp){

    console.log('Selected Item is : '+ emp_Comp);

    $http({
      method: 'GET',
      url: 'http://localhost/companyPopulate.php',
      params: {employeeCompany : emp_Comp}

    }).then(function successCallback(response) {
      $scope.data = response.records;
      console.log('success :'+ JSON.stringify(response));
      //console.log(testdata.data);

    }, function errorCallback(response) {
        //console.log('error',response);
      // called asynchronously if an error occurs
      // or server returns response with an error status.
    });

  }

Это мой сценарий PhP...

<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

    //http://stackoverflow.com/questions/18382740/cors-not-working-php
    if (isset($_SERVER['HTTP_ORIGIN'])) {
        header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
        header('Access-Control-Allow-Credentials: true');
        header('Access-Control-Max-Age: 86400');    // cache for 1 day
    }

    // Access-Control headers are received during OPTIONS requests
    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
            header("Access-Control-Allow-Methods: GET, POST, OPTIONS");

        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
            header("Access-Control-Allow-Headers:        {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

        exit(0);
    }

    include_once 'config.php';

    //create connection
    $conn = new mysqli($mysql_host, $mysql_user, $mysql_password,$mysql_database);

    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }


    $fields = array();

    if(isset($_GET['employeeNo']))
        $fields['employeeNo'] = $_GET['employeeNo'];

    if(isset($_GET['employeeName']))
        $fields['employeeName'] = $_GET['employeeName'];

    if(isset($_GET['employeeCompany']))
        $fields['employeeCompany'] = $_GET['employeeCompany'];


    $sql = "SELECT employeeName,employeeNo FROM employee_info WHERE ";
    $count = 0;

    foreach($fields as $key => $value){
        if($count == 0)
            $sql .= $key . "='" . $value . "' ";

        else
            $sql .= "AND " . $key . "='" . $value . "' ";

        $count++;
    }

    $fields = array();

        $result = $conn->query($sql);

            $outp = "";

            while($rs = $result->fetch_array(MYSQLI_ASSOC)) 
            {
                if ($outp != "") 
                {
                    $outp .= ",";
                } 

                $outp .= '{"employeeName":"' . $rs["employeeName"] . '"}'; 



            }

            $outp ='{"records":['.$outp.']}';


            $conn->close();

        echo $outp;
    /* }else{
        echo 'parameters expected from the client are missing! :) ';
    } */

?>

Я получаю правильные результаты, когда я запускаю сценарий в браузере.

Пожалуйста помогите!! Заранее спасибо!!

  • 0
    использовать соединения для извлечения данных из нескольких таблиц
  • 0
    какой ответ вы залогинитесь на успех?

2 ответа

0
Лучший ответ

попробуйте echo json_encode($outp); вместо echo $outp; потому как. он должен быть передан как строка json. то только вы можете проанализировать его в массиве.

  • 0
    мой формат Джейсона был неправильным !! json_encode работал отлично !! Спасибо!!
0

Я думаю, вы должны уметь упростить создание json, как это

$output=array();

while($rs = $result->fetch_array(MYSQLI_ASSOC)){
    $output[]=$rs;
}
json_encode( $output );


header( 'Content-Type: application/json' );
echo $output;
  • 0
    мой формат Джейсона был неправильным !! json_encode работал отлично !! Спасибо!!
Сообщество Overcoder
Наверх
Меню