A mi entender el problema es que está mal elegido el campo de ordenamiento en el SELECT.
Me explico:
El SELECT dice:
Pero
recordListingID se actualiza en forma secuencial en este punto:
entonces ese orden será siempre el inverso al de listado.
Es decir, si al principio se los leyo así:
y luego se los graba:
Cuando se refresca se lo lee siempre invertido, por lo que lo que se recibe es:
El problema es, entonces, que lo que está mal elegido es el campo de ordenamiento, o bien no hace falta indicarlo y se deja que
recordListingID quede como está...
Simplificando:
recordListingID no puede ser el campo de ordenamiento en el refresco de la pagina, o al menos no debe serlo si usas DESC.