Calculando el DC dígito de control de un número de cuenta IBAN me he encontrado un problema con el módulo o resto. Al manejar un número que sobrepasa el integer, "no se exacta la barrera, pero supongamos que a partir de 2147483647 deja de ser nuestro integer de toda la vida", manual PHP. Enteros y al calcular el modulo de 97 de ese número long perdía la precisión y devolvía un resto incorrecto. Hay varias soluciones a esta situación, yo opté por usar bcmod function bcmod ya que en PHP hay funciones para casi todo y sino en www.phpclasses.org podremos encontrar alguna clase que nos facilite el desarrollo. Supongo que también se debe a la "anarquía" de PHP que no obliga a declarar el tipo de dato de la variable, aunque cada vez empiezo a encontrar más código en el que se hacen casting a las variables. En el mundo java un int es un int, un String es un String y un long es un long y todo el día haciendo casting pero siempre tienes claro que hay en una variable. $foo...
Gracias me sirvio! ;)
ResponderEliminarperfecto!!!
ResponderEliminarBuenas
ResponderEliminarTengo una duda, la paginación funciona perfectamente, pero necesito obtener el número de registros que devuleve la consulta interna, y así devolver el número de registro que podría devolver y el que realmente devuelvo tras la paginación.
He probado varias cosas pero no encuentro la solución.
Gracias
Hay varias soluciones, la mas sencilla aunque habrá mejores, es hacer primero la consulta que tengas en $sql pero con COUNT:
ResponderEliminar$sql_numero_filas="SELECT COUNT(*) FROM TABLA WHERE CONDICIONES"
Y luego hacer la consulta paginada.
También puedes recoger información del cursor V$SQL como ROWS_PROCESSED , END_OF_FETCH_COUNT ...
En MySQL tras la consulta con LIMIT puedes lanzar: SELECT FOUND_ROWS(); que te devolverá la cantidad de filas que devolvería sin el LIMIT.
Pero en ambos casos te recomiendo usar siempre SQL standard ya que te será válido para cualquier base de datos