Foros del Web » Programando para Internet » PHP »

Ordenar informe en PHP

Estas en el tema de Ordenar informe en PHP en el foro de PHP en Foros del Web. Buenos días, Antes que nada soy nuevo en esto y desde ya agradezco a todos la colaboración con sus aportes. Tengo armadas páginas como formularios ...

  #1 (permalink)  
Antiguo 18/07/2012, 07:50
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Ordenar informe en PHP

Buenos días,

Antes que nada soy nuevo en esto y desde ya agradezco a todos la colaboración con sus aportes.

Tengo armadas páginas como formularios de inscripción en PHP, al completar las mismas se cargan en un archivo datos2.txt que al abrirlo se ven los siguiente datos:

2012-07-11_12:43:37;190.30.229.90;PROVINCIA DE SANTA FE - CENTRO ASISTENCIAL DE MEDICINA PREPAGA;;[email protected];03492 501501;03492 501502;1;Dr.;BECEYRO;GERARDO;SECRETARIO GENERAL;Asistente;

2012-07-11_12:43:37;190.30.229.90;PROVINCIA DE SANTA FE - CENTRO ASISTENCIAL DE MEDICINA PREPAGA;;[email protected];03492 501501;03492 501502;2;Dr.;GAGLIARDI;GUILLERMO;JEFE AUDITORIA MEDICA;Asistente;

2012-07-13_09:13:12;190.137.34.226;PROVINCIA DE ENTRE RIOS - UNIMEDICA CONCEPCION DEL URUGUAY;;[email protected];0 3442-426068/424646;;1;Cdora.;BOUCHET;Silvina;;Asistente;

2012-07-13_09:13:12;190.137.34.226;PROVINCIA DE ENTRE RIOS - UNIMEDICA CONCEPCION DEL URUGUAY;;[email protected];0 3442-426068/424646;;2;Sra.;GAUS;Nilda;;Asistente;

El informe que tengo armado me los muestra por orden (fecha y hora) de inscripción, apareciendo el primero arriba.

http://www.rascomra.com.ar/php/inscripciones.php

Lo que yo necesitaría es lo que contiene el datos2.txt ordenarlo por orden alfabético tanto las provincias como los apellidos y nombres. O sea serían dos informes.

Serían tan amables de indicarme que debo cambiar en el código para poder hacerlo.

Muchas gracias por la ayuda.

Saludos
  #2 (permalink)  
Antiguo 18/07/2012, 08:12
 
Fecha de Ingreso: junio-2012
Mensajes: 23
Antigüedad: 11 años, 10 meses
Puntos: 8
Respuesta: Ordenar informe en PHP

Hola, una solución a lo que pides consiste en pasar a un array la información que cargas del archivo datos2.txt, después puedes realizar los ordenamientos utilizando las funciones sort,asort o array_multisort ( considero que esta función es la que te vendría mejor), una vez teniendo el ordenamiento ahora si puedes disponer de la información como te interesa.
  #3 (permalink)  
Antiguo 18/07/2012, 09:36
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Ordenar informe en PHP

albertoascencioh ya te dió la respuesta... en el manual está un poco más explícito


saludos
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #4 (permalink)  
Antiguo 18/07/2012, 12:07
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Ordenar informe en PHP

En el código donde tendría que insertar el sort para ordenarlo, copio el mismo y disculpen mi ignorancia soy novato en esto:

<?
echo "<center>";
echo "<h2>Listado de inscripciones al " .date("j/m/Y (H:i)"). "</h2>";
echo "<h4>Ordenado por fecha de inscripción</h4>";
echo "</center>";

$archivo = file("datos2.txt");
$registro = split( ";", $archivo[0]);
$control = $registro[0];
titulos($registro);
for ($i=0; $i<count($archivo); $i++)
{
$registro = split( ";", $archivo[$i]);
if ($registro[0] != $control)
{
$control = $registro[0];
titulos($registro);
}
echo "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp";
echo $registro[7].") ".$registro[8].", ".$registro[9]." (".$registro[10].")<br>";
}

echo "<hr>";
?>

Muchas gracias.

Saludos.
  #5 (permalink)  
Antiguo 18/07/2012, 12:12
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Ordenar informe en PHP

la función split... está obsoleta.. lo dice el manual, por otro lado...


sustituye esta linea:
Código PHP:
Ver original
  1. $registro = split( ";", $archivo[0]);
por estas
Código PHP:
Ver original
  1. $registro = split( ";", $archivo[0]);
  2. print_r($registro);
y dinos que te arroja
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #6 (permalink)  
Antiguo 19/07/2012, 07:50
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Ordenar informe en PHP

Muchas gracias por la respuesta.

Me arroja lo siguiente:

Array ( [0] => 2012-07-11_12:43:37 [1] => 190.30.229.90 [2] => PROVINCIA DE SANTA FE - CENTRO ASISTENCIAL DE MEDICINA PREPAGA [3] => [4] => [email protected] [5] => 03492 501501 [6] => 03492 501502 [7] => 1 [8] => Dr. [9] => BECEYRO [10] => GERARDO [11] => SECRETARIO GENERAL [12] => Asistente [13] => )

Publiqué la página por si quieren comprobarlo uds mismos:

http://www.rascomra.com.ar/php/inscripciones-ordenadas.php

Alguna sugerencia, muchas gracias.

Saludos.
  #7 (permalink)  
Antiguo 19/07/2012, 09:36
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Ordenar informe en PHP

ahí ya tienes el array ya hecho.... ahora ya puedes usar las sentencias sort, etc. para ordernarlos o usar algun método de ordenación... aqui hay algo que te puede servir


saludos
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #8 (permalink)  
Antiguo 19/07/2012, 10:27
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Ordenar informe en PHP

Saqué el código del manual que me pasaron el link http://php.net/manual/es/function.sort.php, cambié los datos de las frutas por los mios y puse el siguiente orden:

$registro = array(
"archivo[3]", "archivo[10]", "archivo[11]"
);
sort($archivo, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($archivo as $key => $val) {
echo "registro[" . $key . "] = " . $val . "\n";
}

Me arroja error en la línea 99, que es donde empieza sort($archivo....

Seguro algo hago mal, perdón si para uds es una consulta muy básica que no la puedo sacar es que estoy aprendiendo.

Gracias.-
  #9 (permalink)  
Antiguo 19/07/2012, 10:28
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Ordenar informe en PHP

Aca pueden ver la página como sale: http://www.rascomra.com.ar/php/inscripciones-ordenadas2.php
  #10 (permalink)  
Antiguo 19/07/2012, 11:19
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Ordenar informe en PHP

$registro = array(
"archivo[3]", "archivo[10]", "archivo[11]"
);

eso está bien escrito???

o debe de ir

$registro = array(
$archivo[3], $archivo[10], $archivo[11]
);
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!

Última edición por p414; 19/07/2012 a las 11:19 Razón: me sobraban comillas
  #11 (permalink)  
Antiguo 19/07/2012, 12:07
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Ordenar informe en PHP

hola debe ir:

Código PHP:
Ver original
  1. $registro = array(
  2.                           $archivo[3],
  3.                           $archivo[10],
  4.                           $archivo[11]
  5.                          );

Son variables , no un string
  #12 (permalink)  
Antiguo 19/07/2012, 12:15
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Ordenar informe en PHP

Ahi lo cambié y subí: http://www.rascomra.com.ar/php/inscripciones-ordenadas2.php

Luego tengo este código que no se si lo dejo o lo saco:

sort($archivo, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($archivo as $key => $val) {
echo "registro[" . $key . "] = " . $val . "\n";
}


Me arroja error justo cuando comienza el mismo en la linea 100.

Gracias.-
  #13 (permalink)  
Antiguo 19/07/2012, 12:19
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Ordenar informe en PHP

trata quitándolo...
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #14 (permalink)  
Antiguo 19/07/2012, 13:10
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Ordenar informe en PHP

Ahí lo saqué y no aparecen los errores de abajo.
Igual sigue sin reflejarle el listado ordenado por provincia y por orden alfabetico de los apellidos. ¿Como puedo lograrlo?
http://www.rascomra.com.ar/php/inscripciones-ordenadas2.php
Muchas gracias.-
  #15 (permalink)  
Antiguo 19/07/2012, 13:30
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Ordenar informe en PHP

puedes poner todo tu código para analizarlo???? mientras iré a comer...
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #16 (permalink)  
Antiguo 19/07/2012, 13:53
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Ordenar informe en PHP

Claro que si, buen provecho:

<?
function fechabien($fecha)
{
return substr($fecha, 8, 2)."/".substr($fecha, 5, 2)."/".substr($fecha, 0, 4)." ".substr($fecha, 11, 8);
}

function titulos($regis)
{
echo "<br><br><hr size='4'>";
echo "Institución: <b>".$regis[2];
if ( trim( $regis[3]) != "") echo " - ".$regis[3];
echo "</b><br>";
echo "Fecha inscripción: ".fechabien( $regis[0])."<br>";
echo "Dirección IP: ".$regis[1]."<br>";
echo "Correo electrónico: <a href='enviarmail.php?xpara=$regis[4]' target='_blank'>$regis[4]</a><br>";
echo "Tel.: ".$regis[5]." - Fax: ".$regis[6]."<br>";
echo "<hr align='left' width='80%' size='1'>";
echo "<u>Inscriptos:</u><br>";
}


?>

<HTML>
<META NAME="Author" CONTENT="EstiloDW">
<HEAD>
<TITLE>Listado de inscripciones al XVIII Congreso RAS - Ordenado por fecha -
<? echo date("j/m/Y (H:i)"); ?></TITLE>
<STYLE>
BODY {
font-family: Arial;
font-size: 12pt;
color: 0000A0;
margin-top: 10 px;
background-color: #FFFFFF;
}
.Estilo4 {
font-size: 14px;
font-weight: bold;
}
.Estilo6 {
font-size: 14pt;
font-weight: bold;
}
.Estilo10 {font-size: 14}
.Estilo12 {font-size: 12px}
</STYLE>
</HEAD>
<!----------------------------------------------------->
<BODY TEXT=0000A0 >

<!--------------TABLA Encabezado --------------->
<table border="0" cellspacing="5" cellpadding="0">
<tr>
<td width="183" height="103"><img src="logo-mnes.jpg" alt="" width="170" height="91"></td>
<td width="319"><table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td valign="top" class="Estilo7"><p class="Estilo7"><span class="Estilo27"><strong class="Titulo_10">XVIII CONGRESO RAS</strong><br>
<em><strong>Tu protecci&oacute;n. Siempre </strong></em> <br>
<strong>Posadas Misiones Argentina </strong><br>
<strong class="Titulo_10"> 30 y 31 agosto 2012</strong></span><br>
<a href="mailto:[email protected]. ar; [email protected]" target="_blank">[email protected] om.ar</a><br>
<a href="http://www.rascomra.com.ar/" target="_blank">www.rascomra.com.ar</a><br>
</p></td>
</tr>
</table></td>
</tr>
</table>
<HR>

<?
echo "<center>";
echo "<h2>Listado de inscripciones al " .date("j/m/Y (H:i)"). "</h2>";
echo "<h4>Ordenado por fecha de inscripción</h4>";
echo "</center>";

$archivo = file("datos2.txt");
$registro = split( ";", $archivo[0]);
print_r($registro);
$control = $registro[0];
titulos($registro);
for ($i=0; $i<count($archivo); $i++)
{
$registro = split( ";", $archivo[$i]);
if ($registro[0] != $control)
{
$control = $registro[0];
titulos($registro);
}
echo "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp";
echo $registro[7].") ".$registro[8].", ".$registro[9]." (".$registro[10].")<br>";
}

echo "<hr>";

$registro = array(
$archivo[3], $archivo[10], $archivo[11]
);


?>

<hr>
</BODY>
</HTML>
  #17 (permalink)  
Antiguo 19/07/2012, 15:41
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Ordenar informe en PHP

tengo varias dudas respecto a la logica que usas...

1.- $control = $registro[0]; eso que hace?
2.- if ($registro[0] != $control)
{
$control = $registro[0];
titulos($registro);
} si ya tienes el punto 1... para qué lo pones??? no veo donde lo estés cambiando :S


para que la ordenación sea efectuada correctamente, debes realizarla antes de que hagas el for... para que cuando hagas la impresión esta ya vaya realizada...


aca te dejo el algoritmo de un método de ordenación...
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #18 (permalink)  
Antiguo 20/07/2012, 07:54
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Ordenar informe en PHP

El tema es así, me pasaron este informe y me pidieron ordenarlo. Yo no lo armé sino un programador PHP que ahora no lo pueden ubicar.
Yo me manejo con el diseño web pero no se PHP por eso consulto para que me den una mano.
Leí algoritmo de método de ordenación pero sinceramente no lo entiendo.
El informe hoy se presenta por fecha de inscripción y lo que me piden es hacer dos opciones mas una que presente separado por provincia y otra que presente todas las personas inscriptas ordenadas por apellido alfabéticamente.
Le pido mil disculpas mi ignorancia, pero no tengo ni idea como hacerlo por eso les consulto. Lo que deba cambiar del código me indican y lo hago no hay drama, podemos probar todas las veces que quieran. Les puedo pasar el txt como se guarda también, sólo me lo piden y lo publico.
Muchas gracias.
  #19 (permalink)  
Antiguo 20/07/2012, 09:42
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Ordenar informe en PHP

podemos ver como generas ese txt??? porque si estoy en lo correcto, desde ahí podemos hacer la ordenación y te evitas miles de líos...
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #20 (permalink)  
Antiguo 20/07/2012, 10:28
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Ordenar informe en PHP

Excelente, ahi lo paso como se va generando el datos2.txt a medida que se registran:

2012-07-11_12:43:37;190.30.229.90;PROVINCIA DE SANTA FE - CENTRO ASISTENCIAL DE MEDICINA PREPAGA;;[email protected];03492 501501;03492 501502;1;Dr.;BECEYRO;GERARDO;SECRETARIO GENERAL;Asistente;
2012-07-11_12:43:37;190.30.229.90;PROVINCIA DE SANTA FE - CENTRO ASISTENCIAL DE MEDICINA PREPAGA;;[email protected];03492 501501;03492 501502;2;Dr.;GAGLIARDI;GUILLERMO;JEFE AUDITORIA MEDICA;Asistente;
2012-07-11_12:43:37;190.30.229.90;PROVINCIA DE SANTA FE - CENTRO ASISTENCIAL DE MEDICINA PREPAGA;;[email protected];03492 501501;03492 501502;3;Sr.;BOTTA;DARIO;GERENTE COMERCIAL;Asistente;
2012-07-13_09:13:12;190.137.34.226;PROVINCIA DE ENTRE RIOS - UNIMEDICA CONCEPCION DEL URUGUAY;;[email protected];0 3442-426068/424646;;1;Cdora.;BOUCHET;Silvina;;Asistente;
2012-07-13_09:13:12;190.137.34.226;PROVINCIA DE ENTRE RIOS - UNIMEDICA CONCEPCION DEL URUGUAY;;[email protected];0 3442-426068/424646;;2;Sra.;GAUS;Nilda;;Asistente;
2012-07-13_09:13:12;190.137.34.226;PROVINCIA DE ENTRE RIOS - UNIMEDICA CONCEPCION DEL URUGUAY;;[email protected];0 3442-426068/424646;;3;Sra.;FERREYRA;Vanesa;;Asistente;
2012-07-13_09:13:12;190.137.34.226;PROVINCIA DE ENTRE RIOS - UNIMEDICA CONCEPCION DEL URUGUAY;;[email protected];0 3442-426068/424646;;4;Sra.;GONZALEZ;Griselda;;Asistente;
2012-07-13_09:14:06;190.137.34.226;PROVINCIA DE ENTRE RIOS - UNIMEDICA CONCEPCION DEL URUGUAY;;[email protected];0 3442-426068/424646;;1;Sr.;FACIO;Matias;;Asistente;
2012-07-19_08:56:00;190.192.47.205;PROVINCIA DE SANTA FE - FEDERACIÓN MÉDICA DE SANTA FÉ - ROSARIO;;[email protected];0341-4406043/4471592;0341-4406043;1;Sra.;CUASSOLO;CARINA;ADMINISTRATIVA;Asis tente;
2012-07-19_08:56:00;190.192.47.205;PROVINCIA DE SANTA FE - FEDERACIÓN MÉDICA DE SANTA FÉ - ROSARIO;;[email protected];0341-4406043/4471592;0341-4406043;2;Sra.;YACUZZI;VILMA;ADMINISTRATIVA;Asiste nte;
2012-07-19_18:04:47;200.43.135.122;PROVINCIA DE SANTA FE - ARGUS SALUD SRL;;[email protected];03404-482402;03404-482402;1;Dr.;MONTEVERDE;RICARDO;GERENTE;Asistente;
2012-07-19_18:04:47;200.43.135.122;PROVINCIA DE SANTA FE - ARGUS SALUD SRL;;[email protected];03404-482402;03404-482402;2;Sra.;LUNA;LILIANA;ADMINISTRATIVA;Asistent e;
  #21 (permalink)  
Antiguo 20/07/2012, 10:36
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Ordenar informe en PHP

si si... ese es el txt... pero... cual es el archivo que genera este txt????? lo conoces??? sino lo conoces... dejame hacer algo de tiempo para tratar de implementar el metodo burbuja para ti...
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #22 (permalink)  
Antiguo 20/07/2012, 12:51
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Ordenar informe en PHP

Si lo tengo, está en producción los cargados quedan registrados porfa no se registren.

http://www.rascomra.com.ar/php/formuins2012.php

Intente copiar el código pero no me permite mas de 10000 caracteres, por eso paso la URL el resto ya saben click derecho / ver código fuente.

Gracias.-
  #23 (permalink)  
Antiguo 20/07/2012, 13:33
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Ordenar informe en PHP

uhm... porque no copias el código aquí y nos pasas la url... o dame un momento enmi hora de comida trato de hacerte el metodo de ordenación...
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #24 (permalink)  
Antiguo 20/07/2012, 13:47
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Ordenar informe en PHP

Porque no cabe el código como explico arriba, si esto aceptace mas caracteres con gusto lo haría. Perdón.-
  #25 (permalink)  
Antiguo 20/07/2012, 15:31
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Ordenar informe en PHP

te dejé el link.... ingresa al link y pon el código ahí ... apenas voy regresando de comer... deja checo el algoritmo y te lo paso
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #26 (permalink)  
Antiguo 20/07/2012, 21:49
 
Fecha de Ingreso: junio-2012
Mensajes: 23
Antigüedad: 11 años, 10 meses
Puntos: 8
Respuesta: Ordenar informe en PHP

Hola, disculpa yo comprendi que necesitas realizar un ordenamiento por secciones. Ya que observo en la página tienes cinco secciones, luego cada sección se constituye por columnas ( por decir provincia, fecha, correo, etc.. )
Por tanto necesitas un array asociativo, por tanto algo que puedieras implementar sería esto.

//solo tome una parte de tus datos

$datos[] = array( "fecha" => "2012-07-11_12:43:37", "lugar" => "PROVINCIA DE SANTA FE - CENTRO ASISTENCIAL DE MEDICINA PREPAGA", "correo"=>"[email protected]");
$datos[] = array("fecha" => "2012-07-10_09:13:12", "lugar" => "PROVINCIA DE ENTRE RIOS - UNIMEDICA CONCEPCION DEL URUGUAY" , "correo"=>"[email protected] ");
$datos[] = array("fecha" => "2012-07-19_18:04:47", "lugar" => "PROVINCIA DE SANTA FE - ARGUS SALUD SRL","correo"=>"[email protected]");

echo print_r( $datos );

echo "<br/>";

foreach( $datos as $k=>$v ){
$fecha[$k] = $v;
$lugar[$k] = $v;
$correo[$k]=$v;
}
//aqui se ordena por fecha
array_multisort($fecha,SORT_ASC,$datos);

//mostrar array ordenado por fecha
echo print_r( $datos );

echo "<br/>";


Puedes obtener mucha más información para el caso de las funciones empleadas en
http://php.net/manual/es/function.array-multisort.php

Espero te ayude a resolver tu problema.
  #27 (permalink)  
Antiguo 22/07/2012, 23:07
Avatar de naiger67  
Fecha de Ingreso: enero-2011
Mensajes: 22
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Ordenar informe en PHP

Pillate este codigo y adaptalo...
Acuerdate q file() devuelve un array
Código PHP:
Ver original
  1. $archivo = file('ver.txt');
  2.    
  3.     function cambiarFechaAEntero($fecha)
  4.     {
  5.         $escapaCaracteres = array(':','-','_');
  6.         return str_replace($escapaCaracteres,'',$fecha);
  7.     }
  8.    
  9.     function ordenaBidimensional($arreglo,$indice)
  10.     {  
  11.        $aux  = $arreglo;
  12.        $size = count($aux);
  13.        $cuenta = 1;
  14.        
  15.        for($i=0;$i<($size-1);$i++)
  16.        {
  17.            for($j=0;$j<($size-$cuenta);$j++)
  18.            {
  19.                 $registroA = explode(';',$aux[$j]);
  20.                 $registroB = explode(';',$aux[$j+1]);
  21.                 $fechaA = cambiarFechaAEntero($registroA[$indice]);
  22.                 $fechaB = cambiarFechaAEntero($registroB[$indice]);
  23.                 /*
  24.                     Condicional para orden creciente
  25.                     Para orden decreciente cambiar el condicional '>' por este '<'
  26.                     Para las cadenas te fusilas strcmp()
  27.                 */
  28.                 if($fechaA>$fechaB)
  29.                 {
  30.                     $registroAux = $aux[$j+1];
  31.                     $aux[$j+1] = $aux[$j];
  32.                     $aux[$j] = $registroAux;
  33.                    
  34.                 }
  35.            }
  36.            $cuenta++;
  37.        }
  38.        return $aux;
  39.     }

Última edición por naiger67; 22/07/2012 a las 23:23
  #28 (permalink)  
Antiguo 25/07/2012, 13:06
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Ordenar informe en PHP

Muchisimas gracias por las respuestas.

Actualmente la página que me muestra los inscriptos http://www.rascomra.com.ar/php/inscripciones.php
está ordenada por fechas en la cual se fueron registrando.
Este sería el código:
<?
echo "<center>";
echo "<h2>Listado de inscripciones al " .date("j/m/Y (H:i)"). "</h2>";
echo "<h4>Ordenado por fecha de inscripción</h4>";
echo "</center>";

$archivo = file("datos2.txt");
$registro = split( ";", $archivo[0]);
$control = $registro[0];
titulos($registro);
for ($i=0; $i<count($archivo); $i++)
{
$registro = split( ";", $archivo[$i]);
if ($registro[0] != $control)
{
$control = $registro[0];
titulos($registro);
}
echo "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp";
echo $registro[7].") ".$registro[8].", ".$registro[9]." (".$registro[10].")<br>";
}

echo "<hr>";
?>


Necesito armar otra página que me aparezcan ordenados por provincia:
http://www.rascomra.com.ar/php/porprovincia.php

Y una mas por orden alfabetico del apellido de cada inscripto:
http://www.rascomra.com.ar/php/inscripciones-ordenadas.php

Que partes del código actual que tengo debo cambiar para armar las páginas correspondientes?

Muchas gracias.

Saludos.-
  #29 (permalink)  
Antiguo 26/07/2012, 11:23
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Ordenar informe en PHP

Cita:
Iniciado por harpy Ver Mensaje
Muchisimas gracias por las respuestas.

Actualmente la página que me muestra los inscriptos http://www.rascomra.com.ar/php/inscripciones.php
está ordenada por fechas en la cual se fueron registrando.
Este sería el código:
<?
echo "<center>";
echo "<h2>Listado de inscripciones al " .date("j/m/Y (H:i)"). "</h2>";
echo "<h4>Ordenado por fecha de inscripción</h4>";
echo "</center>";

$archivo = file("datos2.txt");
$registro = split( ";", $archivo[0]);
$control = $registro[0];
titulos($registro);
for ($i=0; $i<count($archivo); $i++)
{
$registro = split( ";", $archivo[$i]);
if ($registro[0] != $control)
{
$control = $registro[0];
titulos($registro);
}
echo "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp";
echo $registro[7].") ".$registro[8].", ".$registro[9]." (".$registro[10].")<br>";
}

echo "<hr>";
?>


Necesito armar otra página que me aparezcan ordenados por provincia:
http://www.rascomra.com.ar/php/porprovincia.php

Y una mas por orden alfabetico del apellido de cada inscripto:
http://www.rascomra.com.ar/php/inscr...-ordenadas.php

Que partes del código actual que tengo debo cambiar para armar las páginas correspondientes?

Muchas gracias.

Saludos.-


En ese código que pones... no veo la ordenación por fecha de ingreso... podrias indicar donde tienes esa ordenacion? porque creo que solo está mostrando el archivo sin ordenar nada y como está por fecha, pues da la impresión de oredenacion....
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #30 (permalink)  
Antiguo 26/07/2012, 11:26
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Ordenar informe en PHP

pensando un poco mas claro, es un array multidimensional el que tienes en el archivo, porque no lo haces con esta función, y aqui también explicaron algo al respecto...


avisanos como va
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!

Etiquetas: formulario, informe
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 05:01.