Problemas con Loop en Neophp al recibir datos de MYSQL - Forum

Forum Navigation
You need to log in to create posts and topics.

Problemas con Loop en Neophp al recibir datos de MYSQL

Tengo el siguiente drama al recibir datos de una base de datos MYSQL, en la subrutina que recibe los datos tengo el siguiente codigo, obteniendo que nunca termina el loop para ir a la pagina solicitada:

CreateEmptyArray [tableData]
SetVar [tableData] [data]
ArrayLen [tableData] [totalRecords]   / La variable [totalRecords] me devuelve la cantidad correcta de registros encontrados

Loop 0 [totalRecords] [x]
SetCompVar "[Casa([x])]" "[tableData([x])('Nombre')]"
ShowObject "Ca[x]" "" 0
endloop

GotoPage "MenuPrincipal"

 

Si hago el siguiente cambio en las lineas, el resultado es que me deja ir a la pagina despues de cargar los datos pero no me carga todos los registros:

CreateEmptyArray [tableData]
SetVar [tableData] [data]
ArrayLen [tableData] [totalRecords]

Math "[totalRecords]-1" 1 [Cantidad]

Loop 0 [Cantidad] [x]
SetCompVar "[Casa([x])]" "[tableData([x])('Nombre')]"
ShowObject "Ca[x]" "" 0
endloop

GotoPage "MenuPrincipal"

@gustavo1973, ten en cuenta que las instrucciones después del LOOP se ejecutan ANTES de que el LOOP haya terminado. Prueba con esto:

SetVar [total] [totalRecords]-1 
Loop 0 [total] [x]
SetCompVar "[Casa([x])]" "[tableData([x])('Nombre')]"
ShowObject "Ca[x]" "" 0
   If [x] == [totalRecords]
      GotoPage "MenuPrincipal"
   EndIf
endloop

 

Gracias @Luishp, pero con tu ejemplo de los 7 registros que deberia mostrar me sigue mostrando solo 6,

sin embargo la consulta recibe le cantidad de 7

@gustavo1973 pues entonces cambia

SetVar [total] [totalRecords]-1
Loop 0 [total] [x]
Por esto otro y listo :)
Loop 0 [totalRecords] [x]

Saludos!


@Luishp Sigue sn funcionar si lo hago de esa manera, lo que noto es que el"jsAlert" se muestra 8 veces, una vez mas que el total de registros:

Loop 0 [totalRecords] [x]

jsAlert "aqui"
SetCompVar "[Casa([x])]" "[tableData([x])('Nombre')]"
ShowObject "Ca[x]" "" 0
If [x] == [totalRecords]
GotoPage "MenuPrincipal"
EndIf
endloop

@gustavo1973, vale vamos a cambiar el enfoque. Vuelve a tu código inicial y ve a la página siguiente utilizando un pequeño retardo para asegurarte de que el LOOP ha terminado antes de cambiar de página:

Wait 300
  GotoPage "MenuPrincipal"
EndWait

Saludos!