Select dupa mai multe coloane in baza de date

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
dim
Mesaje: 48

Select dupa mai multe coloane in baza de date

Salut
am si eu o baza de date "zona_geografica" in care am rubricile

Cod: Selectaţi tot

id     |nume_tara                 |nume_oras          |id_tara                 |id_oras         | nume_zona              | id_zona   | data
1      | Romania                   | Bucuresti            |22                        | 1                 |  Bucuresti si ilfov     | 1            | 3.10.2020
2      | Romania                   | Cluj                    |22                        | 2                 | Transilvania             | 2            | 3.12.2020
3      | Romania                   | Bucuresti            |22                        | 1                 |   Muntenia               | 3            | 4.4.2020
4      | Romania                   | Buzau                 |22                        | 3                 |   Muntenia               | 3            | 4.1.2020
am preluat datele asa

Cod: Selectaţi tot

 $zona_geografica= $this->db->query("SELECT * FROM " . DB_PREFIX . "zona_geografica WHERE   id_oras ='" . $data['id_oras'] . "'");
foreach ($zona_geografica->rows as $result) {
  if ($result['id_zona'] ) {
    $geo_zone_id = $result['id_zona'];
  }
}

problema este atunci cand id orasului nu este gasit in table imi intoarce eroare
iar daca este gasit de mai multe ori imi afiseaza prima optiune

cum pot sa extrag "id_zona" in functie de "id_oras" si in cea mai veche data iar cand nu exista sa nu imi mai afiseze nimic

MarPlo
Salut,
Incearca asa:

Cod: Selectaţi tot

$zona_geografica= $this->db->query("SELECT * FROM ". DB_PREFIX ."zona_geografica WHERE id_oras ='". $data['id_oras'] ."' ORDER BY data DESC LIMIT 1");

if ($zona_geografica->num_rows > 0){
  foreach ($zona_geografica->rows as $result) {
    if ($result['id_zona'] ) $geo_zone_id = $result['id_zona'];
  }
}
else $geo_zone_id ='';

dim
Multumesc mult pentru ajutor .

Subiecte similare