Zastępujesz tablicę wewnątrz foreach
w każdej iteracji. Zasadniczo oznacza to, że tablica jest opróżniana przy każdej iteracji. Tablica będzie zawierać tylko wartości z ostatniej iteracji. Przenieś $temp = array();
deklaracja poza pętlą, aby to naprawić:
$temp = array(); // intialize the array
foreach($result as $r) {
$temp[] = array(
'id' => (int) $r['id_tabele'],
'ime_prezime' => (string) $r['naziv']
);
}
Powyższa poprawka sprawi, że Twój kod będzie działał, ale zalecam stosowanie podejścia z wykorzystaniem aliasów SQL, jak pokazano w @TwójCommonSense odpowiedź poniżej.