Claro que solo se te ve la última entrada
Has enfocado tu programa.
Fíjate en el bucle que haces en PHP. Le dices a las mismas variables todo el rato que consigan un nuevo valor, por lo que leen toda la tabla, pero al final solo queda el último. Por si no me explico bien, imagina que tengo una matriz con los números del 1 al 100 ordenados, y luego hago esto:
foreach($matriz as $valor)
$mivalor = $valor
Recorro toda la matriz, pero al final $mivalor vale el último valor, porque lo he ido sobreescribiendo con nuevos datos hasta llegar al último.
Ahora, por otra parte, no sé si el objetivo de tu mapa es tener varios infowindows y varios markers. En tal caso, tendrás que crear más, porque solo has puesto uno.
En conclusión, tu programa te coge efectivamente el último valor de la tabla y crea un solo marker, infowindow y listener.
Un saludo!