Foros del Web » Programando para Internet » PHP »

dudas sobre MySql y archivo txt

Estas en el tema de dudas sobre MySql y archivo txt en el foro de PHP en Foros del Web. mi duda es si existe la forma de mostrar el ultimo registro de la base(tabla) mysql y si se puede mas especificamente mostrar los tres ...
  #1 (permalink)  
Antiguo 20/06/2003, 08:48
Avatar de giotari
Usuario no validado
 
Fecha de Ingreso: mayo-2003
Ubicación: Chile
Mensajes: 295
Antigüedad: 14 años, 7 meses
Puntos: 0
Exclamación dudas sobre MySql y archivo txt

mi duda es si existe la forma de mostrar el ultimo registro de la base(tabla) mysql y si se puede mas especificamente mostrar los tres ultimos.

ha!! y tengo una duda mas grande que la anterior: como se puede crear un archivo .txt por php (me imagino si se puede escribir , leer y modificar debe poderse crear un archivo)...ayudenme porfa'.

¿como borro todo el contenido de un txt en php?
  #2 (permalink)  
Antiguo 20/06/2003, 08:57
Avatar de ProgramacionWeb  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona
Mensajes: 176
Antigüedad: 14 años, 6 meses
Puntos: 2
Para lo segundo tienes que abrir tu archivo a modo "w+"
$archivo = fopen("ips.txt","w+");
Ya que w+ es el modo de escritura-creacion si no existe

Para tu primera consulta yo háría:

$max = mysql_result(mysql_query("SELECT COUNT(id) FROM tabla",$db),0);
$sql = "SELECT * FROM tabla LIMIT ".($max-1).",1";

Te cuento, primero mira el número de registros, contando en $max las celdas id (si esa celda no existe en tu tabla cambia id por una celda que exista) despues selecciona de $max -1 (Ya que empieza por 0) y coje 1 Limit ".($max-1).",1

Espero que funcione, no lo prove
__________________
Foros en los que participo:

Última edición por ProgramacionWeb; 20/06/2003 a las 09:04
  #3 (permalink)  
Antiguo 20/06/2003, 09:03
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Lo del ultimo registro, depende de como determinas cual es el ultimo. Si usas un campo indice autoincremental, el ultimo registro seria el que tiene el valor mas alto (los autoincremetales no reutilizan los valores de los registros borrados). Si usas un campo DATETIME para guardar cuando se creo el registro, el ultimo sera el de mayor fecha. Pero todo se reduce a ordenar por el campo que utilizas para determinar el orden de insercion y ordenarlo descendientemente. Para sacar solo 1 (o 2 o los que quieras) registros de la consulta, es usando la clausula LIMIT. Suponiendo que usas un campo autoincremental llamado ID como clave, la consulta podria ser:

SELECT * FROM tabla ORDER BY ID DESC LIMIT 3

para sacar los 3 ultimos ordenados primero el ultimo, segundo el penultimo y tercero el antepenultimo. Revisa www.mysql.com o pregunta en el foro de base de datos para mas detalles (alli se encargan de SQL).

Lo del fichero de texto, para crearlo debes usar la funcion fopen() (www.php.net/fopen). En el manual te pone como crearlo. Y para borrar el contenido del fichero (pero no borrar el fichero) es tan facil como sobreescribir el contenido del fichero con nada, es decir, abrirlo para escritura (truncando el contenido a vacio) y cerrarlo sin grabar nada.

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 20/06/2003, 09:08
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Vaya, nos hemos chocado ProgramacionWeb.

La solucion de ProgramacionWeb funciona solamente si SELECT * FROM tabla devuelve la consulta ordenada por el criterio que determina la antiguedad (lo que no siempre es cierto). Deberias añadirle el ORDER BY para asegurarte (pero sin el DESC, que es para que ordene de mayor a menor).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 20/06/2003, 10:59
Avatar de giotari
Usuario no validado
 
Fecha de Ingreso: mayo-2003
Ubicación: Chile
Mensajes: 295
Antigüedad: 14 años, 7 meses
Puntos: 0
muchas gracias a los dos voy a probar...
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 19:13.