amigos necesito saber en forma urgente si en php existe como en asp el movelast, movefirst, movenext, moveprevious
necesito ir al ultimo registro de una tabla en mysql y anterior al ultimo, pero cooooomoooo????
help pleaseeee
| |||
Hola, Tienes la funcion mysql_data_seek() ( http://www.php.net/manual/en/functio...-data-seek.php ) para posicionarte en un registro. Luego llamas a mysql_fetch_array() para leer el registro. Para posicionarte en el ultimo registro lees el numero de registros devueltos con mysql_num_rows(). Espero haber sido de ayuda.
__________________ Josemi Aprendiz de mucho, maestro de poco. |
| |||
Con: mysql_result($consulta,nºregistro,campo); tambien podrias obtener ese ultimo y antepenultimo registro (recorset que llaman en ASP nop? xD) ... en ese caso no seria el recorset .. mas bien seria un campo en concreto del registro N. eso si, un mysql_query() y despues el mysql_num_rows() para obtener el total de registros .. SI vas hacer el mysql_data_seek() (aquí obtendrias el puntero al recorset entero ..) .. puedes calcular el total de registros (y tal vez mas optimo) via Mysql con una sentencia: $sql="SELECT COUNT(*) FROM tabla"; con esa sentencia .. no haces toda la consulta para luego solo contar su total de registros arrojados sino SOLO dejas a Mysql q te devuelva el total de registros de la consulta ejectada (con sus clausulas WHERE .. si las necesitas .. ORDER y sentido ASC/DESC no serian necesarios para el COUNT() del total ... Bueno .. no se si la habré liado mas .. pero es para q se vea q depende de lo que estés haciendo se puede hacer de varias formas . icluso algunas mas optimas que otras. Un saludo, AHh.. se me olvidó .. Respuesta patrocinada por ASQL: Amigos del SQL xDDD .. (perteneciente al grupo OP (optimizacion: AAA, ASQL y mas orginaciones q se uniran :P) Última edición por Cluster; 29/11/2002 a las 16:12 |
| ||||
Cita: Estimado Cluster: haber si entendi, ocupo primero el $sql="SELECT COUNT(*) FROM tabla"; para saber el total de registros, y luego mysql_result($consulta,nºregistro,campo);Mensaje Original por Cluster Con: mysql_result($consulta,nºregistro,campo); tambien podrias obtener ese ultimo y antepenultimo registro (recorset que llaman en ASP nop? xD) ... en ese caso no seria el recorset .. mas bien seria un campo en concreto del registro N. eso si, un mysql_query() y despues el mysql_num_rows() para obtener el total de registros .. SI vas hacer el mysql_data_seek() (aquí obtendrias el puntero al recorset entero ..) .. puedes calcular el total de registros (y tal vez mas optimo) via Mysql con una sentencia: $sql="SELECT COUNT(*) FROM tabla"; con esa sentencia .. no haces toda la consulta para luego solo contar su total de registros arrojados sino SOLO dejas a Mysql q te devuelva el total de registros de la consulta ejectada (con sus clausulas WHERE .. si las necesitas .. ORDER y sentido ASC/DESC no serian necesarios para el COUNT() del total ... Bueno .. no se si la habré liado mas .. pero es para q se vea q depende de lo que estés haciendo se puede hacer de varias formas . icluso algunas mas optimas que otras. Un saludo, AHh.. se me olvidó .. Respuesta patrocinada por ASQL: Amigos del SQL xDDD .. (perteneciente al grupo OP (optimizacion: AAA, ASQL y mas orginaciones q se uniran :P) para dirijirme por el ejemplo al ultimo y al total menos uno |
| |||
Pero que necesitas exactamente? El ultimo registro y antepenultimo .. o solo algun(os) (no todos) los campos de ese ultimo y antepenultimo registro? Si solo requieres de "campos" .. (y no todos los del registro) usa mysql_result() .. pero si requieres el registro entero (e "recordset") .. mejor usa el método de mysql_seek y mysql_fecht_xxx que describió josemi .. Si vas a contar registros (tra .. la la :P) .. via SQL (COUNT(*) .. ) deberas ejecutar la consulta y obtener el unico resultado que arroja: $consulta_total=mysql_query("SELECT COUNT(*) FROM tabla"); $total_registros=mysql_result($consulta_total,0); y de ahí .. tendrias .. mmm jeje ahora q pienso ( ) ... para hacer un mysql_data_seek() igual hay que hacer la consulta entera con sus registros que arroje .. así q .. no serviria de mucho hacer lo que propongo pues tendrias que hacer otra vez otra consulta ... Mira el ejemplo de php.net sobre mysql_data_seek(): Código PHP: Un saludo, |