Как я могу проанализировать данные JSON с SQL-запросом в классах PHP?

1

У меня есть php json creater. Это веб-сервис, и я использую его в android. У меня есть sql-данные, классы и хотелось бы запускать запросы в классе.

Это мой json-парсер без классов.

<?php
 /$sql_query = blabla{

   $dolaplar= array();
    /* fetch object array */
    while ($obj = $result->fetch_object()) {
      // printf ("%d - %s - %s\n", $obj->id, $obj->tanim, $obj->tipi);
        $dolaplar[]= $obj;
    }
    $kodlanmis= json_encode($dolaplar);
    echo $kodlanmis;

    /* free result set */
    $result->close();
}

?>

И это данные json.

[
{
malzeme_id: "9",
malzeme_adi: "10 kohm direnc",
malzeme_miktari: "580"
},
{
malzeme_id: "8",
malzeme_adi: "Hdmi Kablosu",
malzeme_miktari: "128"
},
{
malzeme_id: "7",
malzeme_adi: "Kirmizi Led",
malzeme_miktari: "-653"
}
]

Вот классы.

<?php
class A {
    public $Message = "Success";
    public $MessageInfo = "";
    public $Payload = array();

    function  __construct(){
        for ( $i=3; $i-->0;){
            array_push($this->Payload, new B);
        }
    }
}

class B {
    public $a = 3;
    public $b = 4;
}

echo json_encode(new A);
?>

И я хотел бы видеть такие данные json.

{
Message: "Success",
MessageInfo: "",
Payload: [
{
 malzeme_id: "9",
 malzeme_adi: "10 kohm direnc",
 malzeme_miktari: "580"
},
{
malzeme_id: "8",
malzeme_adi: "Hdmi Kablosu",
malzeme_miktari: "128"
},
{
malzeme_id: "7",
malzeme_adi: "Kirmizi Led",
malzeme_miktari: "-653"
}
]
}

Я не очень хорошо разбираюсь в php. Является ли это возможным?

  • 0
    Ну, вам нужно каким-то образом передать данные полезной нагрузки в класс A
  • 0
    Да. Но как ? :)
Теги:
parsing

1 ответ

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

Вы можете добавить параметр к своим конструкторам класса A и класса B:

Класс A:

class A {
    public $Message = "Success";
    public $MessageInfo = "";
    public $Payload = array();

    function  __construct($data){
        foreach ($data as $d) {
            array_push($this->Payload, new B($d));
        }
    }
}

Класс B:

class B {
    public function __construct($data) {
        array_walk($data, function($value, $key){
            $this->$key = $value;
        });
    }
}

Тогда ваш звонок будет выглядеть примерно так:

$data = $dolapla // ???
echo json_encode(new A($data));
  • 0
    Сэр, большое спасибо, что спасли меня! :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню