Foros del Web » Programando para Internet » PHP »

Bucle devuelve 3 veces lo mismo

Estas en el tema de Bucle devuelve 3 veces lo mismo en el foro de PHP en Foros del Web. Hola, tengo un archivo llamado tickets.txt en el que cada vez que se actualiza guarda el número de tickets que en ese momento haya, en ...
  #1 (permalink)  
Antiguo 06/04/2014, 20:05
 
Fecha de Ingreso: abril-2014
Mensajes: 3
Antigüedad: 10 años, 8 meses
Puntos: 0
Bucle devuelve 3 veces lo mismo

Hola, tengo un archivo llamado tickets.txt en el que cada vez que se actualiza guarda el número de tickets que en ese momento haya, en este caso hay 3 ticket distintos. Lo que yo intento hacer es extraer el ID de ticket de cuantos tickets haya. Lo que quiero es extraer sólo el número del ticket, es decir si el archivo contiene el texto "ID del ticket* + TKT000001111111" extraer solo el TKT000001111111. Mediante el metodo que estoy intentando el número de ticket que hay en tickets.txt me los enumera bien, es decir si hay 3 tickets, la función substr_count me indica 3, pero el problema con el que me encuentro, es que a la hora de recorrer el texto con un for por ejemplo, en vez de devolverme los 3 números de tickets distintos, me devuelte 3 veces el mismo, en este caso el primer ticket ( 3 veces TKT000001111111 ), como si solo recorriese el texto desde el inico al mismo sitio las 3 veces.

Me gustaría saber como poder hacer que me muestre los 3 números de tickets distintos, o los que en cualquier caso contentenga tickets.txt.

Gracias

Contenido de tickets.txt:

ID del ticket*+ TKT000001111111
Nombre*+ nombre
Telf*+ 999999999

ID del ticket*+ TKT000002222222
Nombre*+ nombre
Telf*+ 888888888

ID del ticket*+ TKT000003333333
Nombre*+ nombre
Telf*+ 777777777

------------------------------------------ Archivo PHP ---------------------------------------------
<table>
<tr>
<td>Ticket</td>
</tr>
<tr>
<?php

$tkt_txt = file_get_contents("tickets.txt");
$tkt_num = substr_count($tkt_txt, 'ID del ticket');

for ($i = 1; $i <= $tkt_num; $i++) {
?>
<td>
<?

$inicio = 'TKT00000';
$fin = '</td>';
$tickets = file_get_contents("tickets.txt");
$ticket= strstr( substr( $tickets, strpos( $tickets $inicio) + strlen( $inicio)), $fin, true);
echo $ticket;
?>
</td>
<?
}
?>
</tr>
</table>
  #2 (permalink)  
Antiguo 06/04/2014, 23:42
 
Fecha de Ingreso: abril-2014
Mensajes: 72
Antigüedad: 10 años, 8 meses
Puntos: 5
Respuesta: Bucle devuelve 3 veces lo mismo

1) Bueno... lo primero es que yo te sugeriría que en vez de usar un archivo TXT usaras una base de datos.

2) Luego, si por cualquier razón NECESARIAMENTE debe ser un TXT, te sugeriría que en el TXT hagas lo posible para que en vez de guardarse los datos por línea se guardaran en forma de un array multidimencional.

3) Y por último... si OBLIGATORIAMENTE tiene que ser como lo tienes... creo que tu solución es leer el TXT entero y al pasar por cada línea verificar los datos que quieres.

**En caso de que optes por esa tercera opción, puedes encontrar información sobre cómo leer el TXT en este enlace http://www.phpya.com.ar/temarios/descripcion.php?cod=37
(claro, ellos luego de leerlo lo muestran en pantalla, pero tú lo trabajarías de acuerdo a tu código y necesidades)
  #3 (permalink)  
Antiguo 07/04/2014, 00:01
 
Fecha de Ingreso: abril-2014
Mensajes: 3
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Bucle devuelve 3 veces lo mismo

Lo primero, gracia por tu respuesta ^_^

Precisamente si intento hacer esto es por que una aplicación ajena genera la información en este incomodo formato e intento facilitar las cosas intentando dar formato a este texto como buenamente pueda. Le echaré un vistazo a eso último que has comentado :D

Etiquetas: bucle, devuelve, veces
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 12:09.