Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

lectura del ultimo registro de base de datos

Estas en el tema de lectura del ultimo registro de base de datos en el foro de Bases de Datos General en Foros del Web. hola me gustaria saber como leo el ultimo registro de una base de datos (MySql) ojala con un ejemplo...
  #1 (permalink)  
Antiguo 11/04/2003, 20:37
Avatar de goya  
Fecha de Ingreso: enero-2002
Ubicación: La Serena
Mensajes: 273
Antigüedad: 22 años, 10 meses
Puntos: 1
Pregunta lectura del ultimo registro de base de datos

hola

me gustaria saber como leo el ultimo registro de una base de datos (MySql)

ojala con un ejemplo
__________________
:adios:
..."Hay dos cosas que son infinitas: el universo y la estupidez humana; y no estoy muy seguro acerca del universo."
Albert Einstein
  #2 (permalink)  
Antiguo 11/04/2003, 21:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Pues depende como tengas la estrutura de tu tabla así será la consulta ...

Lo ideal es que tengas un campo Autoincremental y que este sea Único. El típico "ID" ... Con eso es sencillo la consulta .. Pero si no describes la estructura (nombre de los campos y su tipo) es complicado darte un "ejemplo" ..

De todas formas .. esto tampoco es cosa de PHP .. Por lo menos la parte pricipal que sería la consulta SQL que debes hacer .. Por ende, muevo tu mensaje al foro "Base de datos" .. Aporta los datos que te solicito y veras que se te dá una mejor respuesta allá.

Un saludo,

pd: (se me olvidó) .. Si usas un campo autoincremental .. tienes Opcione "SQL" para obtener el último "ID" generado .. y tambien opción PHP .. Pero siempre es recomendable que uses la opción SQL ..
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 11/04/2003 a las 21:40
  #3 (permalink)  
Antiguo 11/04/2003, 21:36
Avatar de goya  
Fecha de Ingreso: enero-2002
Ubicación: La Serena
Mensajes: 273
Antigüedad: 22 años, 10 meses
Puntos: 1
la estructura es muy simple tengo solo 2 campos id que es autonumerico y nombre , la idea final es saber cuantos nombres hay en la base de datos,( yo lo se porque veo el ultimo id :) ) pero quiero mostrarlo.
__________________
:adios:
..."Hay dos cosas que son infinitas: el universo y la estupidez humana; y no estoy muy seguro acerca del universo."
Albert Einstein
  #4 (permalink)  
Antiguo 11/04/2003, 21:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Ok, pues entonces lo que necesitas es "CONTAR" el total de registros .. NO ver el último ID generado .. ¿Que pasaría si borras un registro de esa tabla? (pasaría que el campo auincremental sigue en su cuenta progresiva por eso tu cálculo del total ya no sería correcto):

SELECT COUNT(id) as total FROM tabla

Ahí tendras UN solo registro llamado "total" (es un alias) con el total de registos (conteo) que tengas en esa tabla ...

Via PHP lo puedes obtener simplemente:

Código PHP:
// resto de código para conectar a tu BD .. seleccionar BD .. etc ..
$consulta=msyql_query("SELECT COUNT(id) as total FROM tabla") or die(mysql_error());
$total=mysql_result($consulta,"total") or die(mysql_error());
echo 
$total
Si estás haciendo el listado (consulta SELECT) de esa tabla .. y al final deseas mostrar el total de registros .. Podrías usar (en PHP) la función de Mysql: mysql_num_rows($consulta) .. Pero si solo quieres el total .. mejor usa la versión integra SQL ..

mysql_num_rows() requiere de una consulta tipo:
SELECT * FROM tabla

Osese, se obtienen el total de registros para luego calcular su total .. Mientras q la opción SQL SOLO generar UN único registro con ese dato del total calculado (con eso ganas en tiempo de proceso de tus consultas ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 14/04/2003, 17:14
Avatar de Ruchu  
Fecha de Ingreso: octubre-2001
Mensajes: 698
Antigüedad: 23 años, 1 mes
Puntos: 2
esta es mas rapida que la COUNT, no lo he probado, se me acaba de ocurrir, pero juraria que si funciona.

SELECT MAX(id) as total FROM tabla
  #6 (permalink)  
Antiguo 14/04/2003, 20:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Ruchu.. pero si borras un registro de tu BD usando un campo auto incremental como es el "ID" .. el MAX(id) no reflejaría el total de registros que tiene esa tabla sino el ID último .. (lee la seguna intervención de goya y veras que "cambió" el fondo de la pregunta) ...

Para el último ID .. está tambien:
SELECT LAST_INSERT_ID() as ultimo_id FROM tabla

y .. bueno habría que probarlo .. pero si hay función especifica para tal fin .. es probable que sea mas rápido incluso que un MAX(id) ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 15/04/2003, 01:47
Avatar de Ruchu  
Fecha de Ingreso: octubre-2001
Mensajes: 698
Antigüedad: 23 años, 1 mes
Puntos: 2
en sql server esta esta otra forma, es especifica para sacar el ultimo id.

Set loRs = cnn.Execute("insert into lagaleria_obras (titulo) values ('"&replace(request.form("titulo"),chr(34),"''")&" '); SELECT @@IDENTITY AS NewID")

Set loRs = loRs.NextRecordSet()
nuevoId = loRs("NewID")
loRs.close
Set loRs=Nothing
  #8 (permalink)  
Antiguo 15/04/2003, 07:44
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 22 años, 9 meses
Puntos: 1
Digo yo que no tiene que ver el tipo de base de datos que usemos para recorrer el recordset.
Eso solo importa para definirlo en el DRIVER al hacer la conexion

Para contar el numero de registros que hay en una base de datos:
totalregistros=rs.recordcount

Y para colocarnos en el ultimo y leerlo.
rs.movelast

Y para saber que codigo o ID tiene ese registro:
<%=rs("ID")%>
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #9 (permalink)  
Antiguo 16/04/2003, 17:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
maestro ....

Si hablamos de PHP y Mysql . lo que es PHP tiene funciones nativas para acceder a Msyql .. Por ejemplo tienes mysql_num_rows() y mysql_insert_id() para lo mismo que pusistes tu desde ASP (supongo q usando tus objetos de ADO o como le llamen en ASP ..)

Pero, Si no quieres ejecutar cierta función nativa de PHP o de ASP .. o del lenguaje de programación que uses para acceder a Mysql .. Puedes usar una simple consulta (query) que use las funciones de Msyql: LAST_INSERT_ID() q son propias de este ..

Si pasas por alguna capa de abstraccion de BD como ADO (o en PHP ADOdb o cualquiera del monton que existen) .. ahí cambia la cosa pues ya tienen implementados métodos para ello que los llamas igual para varios tipos de base de datos .. sea Msyql, SQL server .. o lo q sea )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 16/04/2003, 17:47
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 22 años, 9 meses
Puntos: 1
Opss!!
Al responder a este mensaje pense que estaba posteado en el foro de ASP, por eso hice omentarios directamente sobre ASP.

De todas formas de PHP no tengo conocimientos por lo que no te puedo discutir los metodos.

Pero sin embargo a que llamamos habitualmente funciones nativas?, a una serie de funciones implementadas en el lenguaje de programacion que nos permiten hacer una acciones.
Pues tengo una duda, por que mencionas las funciones de ASP a traves de ADO, o a traves de FSO (para el acceso a ficheros) como no ativas y las de PHP como nativas, tiene que existir una capa de abstraccion igual que la que representa ADO para ASP en el lenguaje PHP, ¿no?

Aclaramelo cuando puedas.
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #11 (permalink)  
Antiguo 16/04/2003, 18:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Pues en PHP como "nativas" .. llamo a esas funciones mysql_xxx() que describí .. Esas funciones SOLO conectan a ese tipo de Base de datos .. (si mal no recuerdo .. las ADO conectan a todo lo que le entre por ODBC ..?) .. Lo mismo hay otras funciones: mssql_xxxx() que son "nativas" para conectar a SQL server directo .. Y tambien hay otras por ejemplo odbc_xxxx() para interactuar con cualquier BD que entre por ODBC .. (y así con un total de unos 15 motores de BD diferentes ..)

Y como "capa de abastracción" en PHP (por lo menos) se le denomina a classes (objetos) o extensiones que hacen esas funciones de acceso a varios motoros de Base de datos (Mysql, SQL server, PostgreSQL .. etc) via unos mismos "métodos" (funciones) para interactuar con esa BD .. (ejemplos son ADOdb (de las mas completas))

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 16/04/2003, 18:13
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 22 años, 9 meses
Puntos: 1
OK, recibido y comprendido
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:09.