sql >> Databasteknik >  >> RDS >> Mysql

Lagra MySQL-resultat i PHP-array för två frågor

Jag vet inte om du letar efter fel, förbereder eller undviker dina frågor men snälla gör det.

För att generera din array kan du göra det med detta:

    $list = [];
    $countries = $link->query("SELECT country_id, country_name FROM countries ...");

    while ($country_row /*fetch from $countries*/) {

        $country_id = $country_row['country_id']; 

        $country_info = [
                'country_id' => $country_id,
                'country_name' => $country_row['country_name'],
                'country_cities' => []
         ];

        $cities_stmt = "SELECT city_id, city_name FROM cities where $country_id...";
        $cities = $link->query($cities_stmt);

        while ($city_row /*fetch from $cities*/) {

            $city_id = $city_row['city_id'];

            $country_info['country_cities'][$city_id] = [
                    'city_id' => $city_id,
                    'city_name' => $city_row['city_name']
            ];
        }

        $list[$country_id] = $country_info;
    }

För att visa din array kan du göra:

    foreach ( $list as $country_id => $country_info ) {

        echo "Country ID: $country_id<br />";
        echo 'Country Name: ' . $country_info['country_name'] . '<br />';
        echo 'Country Cities:<br />';

        $cities = $country_info['country_cities']; 

        foreach ( $cities as $city_id => $city_info ) {

                echo "   City ID: $city_id<br />";
                echo '   City Name: ' . $city_info['city_name'] . '<br />';
        }

        echo '<br />';
    }

Om du känner till lands-ID eller stads-id kan du också göra:

    echo 'City Name: ' . $list[$country_id]['country_cities'][$city_id]['city_name'] . '<br />';


  1. Hur man ställer in miljövariabler för Laravel 5 på AWS EC2 med MySQL

  2. Säkerhetsklass i Codeigniter

  3. Välja distinkta värden från två tabeller

  4. Välja slumpmässiga rader med MySQL