Přepisujete pole uvnitř foreach
při každé iteraci. To v podstatě znamená, že pole se při každé iteraci vyprázdní. Pole bude obsahovat pouze hodnoty z poslední iterace. Přesuňte $temp = array();
deklarace mimo smyčku, která to opraví:
$temp = array(); // intialize the array
foreach($result as $r) {
$temp[] = array(
'id' => (int) $r['id_tabele'],
'ime_prezime' => (string) $r['naziv']
);
}
Výše uvedená oprava zajistí, že váš kód bude fungovat, ale doporučuji použít přístup používající aliasy SQL, jak je uvedeno v @YourCommonSense odpověď uživatele níže.