Non so se è solo per prova, anche perchè nel foreach si fa riferimento alla variabile $result, che non è un array, ma è il risultato dell'ultima iterazione della query e non è stata mai assegnata, tranne se tali istruzioni sono state omesse dal post.