Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   duda con arrays (http://www.forosdelweb.com/f18/duda-con-arrays-306389/)

tattojk 09/06/2005 10:27

duda con arrays
 
Cordial saludo.

Se puede trabajar con arrays de 3 dimensiones ej:
$arr[0][0][0]; lo quiero asi porque en uno coloco el medico, en otro la empresa y en el ultimo no. de pacientes:
$arr[medico][empresa][No]

Si se puede pueden escribirme como se manipula este tipo de array tan complejo

agradezco la ayuda que me puedan brindar.

sism82 09/06/2005 10:30

es posible, y te daría una explicación, pero hay muchas en internet, aprovecha que alguien mas ya se ha tomado la molestia de explicarlo, busca en google un poco

saludos

tattojk 09/06/2005 10:56

Ya he buscado pero no encuentro nada como quiero.
 
Pero ningun sitio habla de los arrays como lo necesito
$arr[medico][empresa][no]

dwaks 09/06/2005 11:09

ok te ayudare con los arrays, debes tener concepto claro de lo que quieres ya que debes organizar bien desde el inicio un detalles puedes hacer un array basandote en las empresas ejemplo:
Necesitamos saber una empresa, cuantos medicos tiene y cuantos pacientes tiene, en este ejemplo pienso que empresa es como un consultorio:
Puedes jacer un array asi:
array(
Empresa => array(medicos=>array(lista de medicos),pacientes=>array(lista de pacientes))
)


Esa estructura se basa en las empresas puedes tener 10 empresas y que cada empresa 20 medicos y 100 pacientes, ejemplo de un array con 2 empresas:

array(
Clinica Capital => array(medicos=>array(joel,gabriel),pacientes=>(car los,yeny)),
Clinica de Urgencias => array(medicos=>array(luis),pacientes=>(lisa,samuel ,arturo))
)

Alli veras e clinicas, la primera tiene:
2 medicos y 2 pacientes
la segunda tiene:
1 medico y 3 pacientes.

Ya dependiendo de como llenaras ese array o de donde sacaras esos datos te puedo guiar mas a fondo en como crearlos y cargarle informacion, tambien como manipular ese array.

tattojk 09/06/2005 15:40

Este es mi codigo
 
<?php
include "../conexion.php";
if(mssql_select_db ("tabla", $conexion))
{

$consulta = "select DISTINCT convert(varchar(10),FechaConsulta,101) as FechaConsulta
from ConsultaPacientes where FechaConsulta between '$FechaIni'
and '$FechaFin' order by FechaConsulta";
$datos = mssql_query($consulta, $conexion);

$fechas = array();
$fechas[0][0][0] = "Médico";
$fechas[0][1][0] = "Empresa";
$numFechas = 1;
while( $unaFecha = mssql_fetch_array( $datos ))
{
$fechas[0][1][ $numFechas++ ] = $unaFecha['FechaConsulta'];
echo $fechas[0][1][ $numFechas++ ];
}

// Obtener los datos de médicos y pacientes atendidos
$consulta = "select isnull(med.PriNomb,'') + ' ' + isnull(med.SegNomb,'')
+ ' ' + isnull(med.PrimApel,'') + ' ' + isnull(med.SegApel,'')
as Medico,count(Factura) as Pacientes,emp.NombreEmp,
convert(varchar(10),FechaConsulta,101) as Fecha from
ConsultaPacientes cons,Medicos med,Empresas emp where cons.Medico=med.NumRegistro
and FechaConsulta between '05/01/2005' and '05/31/2005' and cons.Empresa=emp.NitEmp
group by emp.NombreEmp,med.PriNomb,med.SegNomb,med.PrimApel ,med.SegApel,
FechaConsulta";
$datos = mssql_query($consulta, $conexion);

$numMed = 0;
$medicoActual = '';

while( $unMedico = mssql_fetch_array( $datos ))
{
if ($unMedico['Medico'] != $medicoActual)
{
$numMed++;
$medicoActual = $unMedico['Medico'];
}
$fechas[ $numMed ][0][0] = $unMedico['Medico'];
$num = 1;
while( $num < $numFechas )
{
if ( $unMedico['Fecha'] == $fechas[0][0][ $num ] )
{
$fechas[ 0 ][$num][ 0 ] = $unMedico['NombreEmp'];
$fechas[ $numMed ][$num][ $num ] = $unMedico['Pacientes'];
}
else
{
if ( !isset($fechas[ $numMed ][ $num ][ $num ]) )
{
$fechas[ $numMed ][ $num ][ $num ] = '-';
}
}
$num++;
}
}
}
echo $fechas[4][0][4];
// Mostrar una tabla con los datos
$tablaDatos = "<table border=1>";
for ($med = 0; $med <= $numMed; $med++) {
$tablaDatos .= " <tr> ";
for ($num = 0; $num < $numFechas; $num++) {
$tablaDatos .= " <td> " . $fechas[ $med ][$num][ $num ] . " </td>";
}
$tablaDatos .= " </tr>";
}
$tablaDatos .= " </table>";

echo $tablaDatos;
?>

Bueno esta es mi forma de hacerlo pero me sale muy mal!!!
Solo me muestra los medicos.

Si puedes ayudarme estare muy agradecido.


La zona horaria es GMT -6. Ahora son las 10:29.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2014, Jelsoft Enterprises Ltd.

SEO by vBSEO 3.3.2