Foros del Web » Programando para Internet » PHP »

agrupara para comparacion

Estas en el tema de agrupara para comparacion en el foro de PHP en Foros del Web. pues bueno tengo un fichero de texto en el cual tengo mis datos que son nombre1|algo aqui hira xD nombre2|algo aqui hira xD nombre3|algo aqui ...
  #1 (permalink)  
Antiguo 16/03/2003, 15:02
Avatar de gerzok  
Fecha de Ingreso: diciembre-2002
Ubicación: Zapopan, Jalisco, Mexico
Mensajes: 132
Antigüedad: 21 años, 3 meses
Puntos: 1
Pregunta agrupara para comparacion

pues bueno tengo un fichero de texto en el cual tengo mis datos que son

nombre1|algo aqui hira xD
nombre2|algo aqui hira xD
nombre3|algo aqui hira xD
nombre4|algo aqui hira xD

y asi sucesivamente pero el problema es el siguiente que quiero agrupar todos los digamoslo asi "nombres" y tambien el otro dato "algo aqui hira xD" para poder comparar con if y poder mostrarlos todos ejemplo

print $mivar;

y con esa variable mostar todos los "nombres" pude lograr sacar los nombres con un for y file pero no he podido agruparlo en una variable por falta de acerrimo phpero jeje


y bueno alguna sugerencia para hacer esto? de antemano se los agradesco.


P.D. notese que en los nombres y alg aqui .... hira un respectivo nombre y su dato.
  #2 (permalink)  
Antiguo 16/03/2003, 15:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Para "agrupar" .. teniendo en cuenta que los datos de tu "file" los tienes que leer secuencialmente .. lo que tendrías que hacer es "sacar" esos datos a un array de "resultados o coincidencias" de tu condicion que uses para determniar el "grupo" para luego leer ese array de "coincidencias" tal vez con las mismas rutinas que usas ahora para leer el y desglosar los datos de tu file() (q te genera un array de tantos elementos como \n tenga los datos .. siendo un "registros" una linea y un "campo" algo que lo separe por tu delimitador "|" ...)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 16/03/2003, 15:21
Avatar de gerzok  
Fecha de Ingreso: diciembre-2002
Ubicación: Zapopan, Jalisco, Mexico
Mensajes: 132
Antigüedad: 21 años, 3 meses
Puntos: 1
pues gracias por tu respuesta amigo pero no te entendi bien pero este es el codigo que utilizo:

Código PHP:
$letras = array ("A","B","C","D","E","F","G","H","I","J","K","L",
"M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");

if (empty(
$letra))


enlaces();

}

foreach (
$letras as $es)
{

if (
$letra == $es)
{

$fich = ("psxsql/psx".$es.".txt");

if (
file_exists($fich))
{

$fichero file($fich);
$filecc join("|"$fichero);
$fileca explode("|"$filecc);

print 
$fileca[0];


}

else
{

print 
"No existe";

}

}


y pues quiero agrupar los datos digamoslo asi "1" y "2" como los muestro arriba pero no se con que funcion hacer o como para sacarlos todos de un jalon, alguna idea?
  #4 (permalink)  
Antiguo 16/03/2003, 15:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Podrias pasar ya puestos unos pocos datos q usas en tu psx_letra.txt .. así probamos .. Yo todavía no entiendo que tipo de agrupación bajo q que condición quieres hacerlo ..

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 16/03/2003, 16:00
Avatar de gerzok  
Fecha de Ingreso: diciembre-2002
Ubicación: Zapopan, Jalisco, Mexico
Mensajes: 132
Antigüedad: 21 años, 3 meses
Puntos: 1
Actua Soccer|Elegir al dream team. En la pantalla de títulos pulsa a la vez SELECT, arriba e izquierda. Cuando vayas a elegir un equipo habrá uno nuevo llamado Gremlin Showbiz XI.

Actua Soccer 2|Introduce las siguientes combinaciones en el menú principal. Vuelve a introducirlas para desactivarlas.
Aaa|Aaaa aaaa

es que son trucos de juegos y yo lo que quiero hacer es esto que cuando en el navegador muestre ?letra=A muestre todos los nombres de los trucos que hay en el archivo y para eso los quiero agrupar para que con una sola variable me mueste los nombres y al poner asi ?letra=A&id=1 o otro numero me muestre el respectivo truco, espero haber me explicado :P
  #6 (permalink)  
Antiguo 16/03/2003, 16:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero a ver .. los datos los tienes separados ya en archivos segun la letra que empieze el 1er campo?


Un saludo,

PD: No será mejor que lo hagas con una Base de datos Mysql por ejemplo? .. (si es que puedes usar Msyql o cualquier otra BD) .. Con eso te da mas juego para hacer consultas SQL ..
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 16/03/2003, 16:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Si eres capaz de mostrarlo con un for, ¿para que quieres agruparlo en una variable? ¿O te refieres a meter los datos en un array para manejarlos?

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 16/03/2003, 16:57
Avatar de gerzok  
Fecha de Ingreso: diciembre-2002
Ubicación: Zapopan, Jalisco, Mexico
Mensajes: 132
Antigüedad: 21 años, 3 meses
Puntos: 1
primero no tengo acceso a base de datos :( es por eso que lo ando haciendo con un archivo de texto, y el de agruparlos es para mostrar todos los datos de un jalon y para hacer esto

if ($id == $algo)
{

echo "mastrar el truco $truco";

}

es que quiero agrupar para hacer una comparacion en un if
  #9 (permalink)  
Antiguo 16/03/2003, 17:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. tu en tu estructura de datos NO guardas ningun ID .. tal ejemplo:

1|juego_nombre|truco
2|juego_nombre|truco
3|juego_nombre|truco

Actualmente se ha de "suponer el ID" de la posición que ocupa en el array que te entrega file() al leer el archivo ..

Lo que no me queda claro es COMO guardas esos datos .. Si es en UN SOLO archivo por orden de llegada .. O lo clasificas en archivos segun el nombre del juego por orden alfabetico en archivos psx_letra-abecedario.txt ..

En resumen .. Describe BIEN como estructuras tus datos .. sino es imposible ver una solución ..

Y piensa que file() te entrega un array (como ya te mencioné unos mensajes arriba ...) Así que si necesitas acceder a un elemento concreto (tal cual el $id q tu dices) .. usa ese ID como indice del array $array[$id] ..

Lo de "agrupar" .. si ya lo haces y lo tienes en archivos .. no se para que quieres reagruparlos? .. O es que NO los tienes todavia clasificados en archivos por orden alfabetico?

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 17/03/2003, 09:51
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Hola,
creo que entendi lo que tratas de hacer, pero no me cierran algunas cosas...
Por ej, si haces un join a $fichero y despues un explode eso creo que lo unico que te imprime es el primer registro; y .... hay formas mas cortas de hacer eso.

Pero pasando a tu rara explicacion voy a tratar de darte una soluccion (k capaz no tiene nada que ver con lo que queres).

Suponiendo que una ves que tenes la letra y queres mostrar todos los nombres de los juegos que empiezan con $letra ; y con enlaces para motrar sus trucos heces asi:

Código PHP:
$letras = array ("A","B","C","D","E","F","G","H","I","J","K","L",
"M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");

if (empty(
$letra))

    
enlaces();
}

foreach (
$letras as $es) {
    if (
$letra == $es) {
    
$fich = ("psxsql/psx".$es.".txt");
        if (
file_exists($fich))    {
            
$fichero file($fich);  // como cluster dijo file DEVUELVE UN ARRAY
            
foreach ($fichero as $linea) {  // y para recurrer un array usamos for
            // $linea contendra cada regitro, o como lo llames, ej Actua Soccer|Elegir al dream team.
                
$dato explode("|"$linea);
                echo 
"<a href='mostrartruco.php?juejo=".$dato[0]."&letra=".$letra."'>ver trucos de ".$dato[0]."</a><br>\n";
            }            
        } else {
            print 
"No existe";
        }
    break;
    }

y tu archivo mostrartruco.php seria +o- asi:

Código PHP:
$letras = array ("A","B","C","D","E","F","G","H","I","J","K","L",
"M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");

if (empty(
$letra))

    
enlaces();
}

foreach (
$letras as $es) {
    if (
$letra == $es) {
    
$fich = ("psxsql/psx".$es.".txt");
        if (
file_exists($fich))    {
            
$fichero file($fich);  
            foreach (
$fichero as $linea) {  
                
$dato explode("|"$linea);
                if (
$juego == $dato[0]) {
                    echo 
"html bla bla bla el trucos para".$dato[0]." es ".$dato[1];
                    break 
2;
                }
                
            }            
        } else {
            print 
"No existe";
        }
    }

Espero que te ande! (esta hecho al vuelo)
Saludos...
  #11 (permalink)  
Antiguo 19/03/2003, 00:37
Avatar de gerzok  
Fecha de Ingreso: diciembre-2002
Ubicación: Zapopan, Jalisco, Mexico
Mensajes: 132
Antigüedad: 21 años, 3 meses
Puntos: 1
Gracias a todos por sus respuestas, me han servidor mucho =D en especial quiero darle las gracias a fran86 por que con su post pude lograr lo que queria hacer ;)


saLudOs
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 08:00.