Vous écrasez le tableau à l'intérieur du foreach
à chaque itération. Cela signifie essentiellement que le tableau est vidé à chaque itération. Le tableau ne contiendra que les valeurs de la dernière itération. Déplacez le $temp = array();
déclaration en dehors de la boucle pour résoudre ce problème :
$temp = array(); // intialize the array
foreach($result as $r) {
$temp[] = array(
'id' => (int) $r['id_tabele'],
'ime_prezime' => (string) $r['naziv']
);
}
Le correctif ci-dessus fera fonctionner votre code, mais je recommande d'utiliser l'approche utilisant des alias SQL comme indiqué dans @YourCommonSense la réponse de dessous.