Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dwa zapytania mysql w jednym obiekcie json

Myślę, że możesz tego spróbować

$result = mysql_query("SELECT * FROM data where id='123456'");
$fetch = mysql_query("SELECT name,age,city FROM people where id='123456'"); 

// I think, you'll get a single row, so no need to loop
$json = mysql_fetch_array($result, MYSQL_ASSOC);

$json2 = array();
while ($row = mysql_fetch_assoc($fetch)){
    $json2[] = array( 
        'name' => $row["name"],
        'age' => $row["age"],
        'city' => $row["city"]
    );
}
$json['people'] = $json2;
echo json_encode($json);

Wynik print_r($json) powinno wyglądać mniej więcej tak

Array
(
    [date] => 2013-07-20
    [year] => 2013
    [id] => 123456
    [people] => Array
        (
            [0] => Array
                (
                    [name] => First
                    [age] => 60
                    [city] => 1
                )

            [1] => Array
                (
                    [name] => second
                    [age] => 40
                    [city] => 2
                )

        )

)

Wynik echo json_encode($json) powinno być

{
    "date" : "2013-07-20",
    "year":"2013",
    "id":"123456",
    "people":
    [
        {
            "name" : "First",
            "age" : "60",
            "city" : "1"
        },
        {
            "name" : "second",
            "age" : "40",
            "city" : "2"
        }
    ]
}

Jeśli zrobisz echo json_encode(array($json)) wtedy otrzymasz cały json zapakowane w tablicę, coś takiego

[
    {
        "date" : "2013-07-20",
        "year":"2013",
        "id":"123456",
        "people":
        [
            {
                "name" : "First",
                "age" : "60",
                "city" : "1"
            },
            {
                "name" : "second",
                "age" : "40",
                "city" : "2"
            }
        ]
    }
]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie ScrollableResults Hibernate do powolnego odczytu 90 milionów rekordów

  2. Odpowiednik varchar(max) w MySQL?

  3. JSON_ARRAY() – Utwórz tablicę JSON z listy wartości w MySQL

  4. Kaskadowe pole kombi formularza dostępu nie pokazuje nic w rozwijanym menu

  5. Dlaczego INSERT IGNORE zwiększa klucz podstawowy auto_increment?