Я пытаюсь создать объект JSON, но я не могу создать - PullRequest
0 голосов
/ 19 апреля 2011

Здесь у меня есть функция для чтения моей таблицы

<?php
 public function get_all_record($table, $fields = "*"){

            $sql = "SELECT $fields FROM $table";

            $result = $this->sqlordie($sql);

            $xx=0;
            while($row = mysql_fetch_assoc($result))
              {
                $myrow[$xx] = $row;
                $xx++;
              }


             mysql_free_result($result);
             return $myrow;

        }
     private function sqlordie($sql) {

            $return_result = mysql_query($sql, $this->conn);
            if($return_result) {
                return $return_result;
            } else {
                $this->sql_error($sql);
            }
        }

        private function sql_error($sql) {
            echo mysql_error($this->conn).'<br>';
            die('error: '. $sql);
        }
?>

Ниже кода я вызываю функцию get_all_record и возвращаю результат. Я преобразую в объект json, используя json_encode

 <?php
 $myItem = get_all_record("mc_category","category_id,category_name,category_description");

    echo json_encode($myItem);
?>

Я получаю вывод, как показано ниже

[{"category_id":"2","category_name":"book","category_description":"all type of books"},{"category_id":"3","category_name":"book","category_description":"all type of books"},{"category_id":"4","category_name":"Phone","category_description":"All type of phones"},{"category_id":"5","category_name":"Phone","category_description":"All type of phones"}]

Но мне нужен объект JSON, как показано ниже

{ "aaData": [
    ["Trident","Internet Explorer 4.0","Win 95+","4","X"],
    ["Trident","Internet Explorer 5.0","Win 95+","5","C"],
    ["Trident","Internet Explorer 5.5","Win 95+","5.5","A"],
    ["Trident","Internet Explorer 6","Win 98+","6","A"],
    ["Trident","Internet Explorer 7","Win XP SP2+","7","A"]
] }

Не могли бы вы помочь с созданием вышеупомянутого объекта json.

Ответы [ 2 ]

0 голосов
/ 19 апреля 2011

json_encode получает массив с парами имя / значение.Вы хотите только значения вместо этого.Лучшее решение - использовать

mysql_fetch_row ($ result)

, чтобы получить числовой массив, который преобразуется в предпочитаемый вами формат json.


Если вам понадобятся пары имя / значение где-то позже, вы все равно можете использовать

mysql_fetch_assoc ($ result)

и создать второй массив следующим образом:

$ mySoonToBeJsonData = array_values ​​($ myrow);

это удаляет имена из ассоциативного массива

0 голосов
/ 19 апреля 2011

Попробуйте использовать для кодирования следующее:

echo json_encode($myItem, true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...