Foros del Web » Programando para Internet » PHP »

Crear una Función en PHP

Estas en el tema de Crear una Función en PHP en el foro de PHP en Foros del Web. Hola a todos, los molesto para ver si alguien me puede ayudar ya que necesitaría armar una función de siguente código, ya que sino cuando ...
  #1 (permalink)  
Antiguo 24/03/2010, 22:06
 
Fecha de Ingreso: junio-2004
Ubicación: Villa Carlos Paz
Mensajes: 88
Antigüedad: 19 años, 10 meses
Puntos: 2
Crear una Función en PHP

Hola a todos, los molesto para ver si alguien me puede ayudar ya que necesitaría armar una función de siguente código, ya que sino cuando lo repito mas de una vez en una misma página me genera conflicto.
Me interesaría que el parámetro que se modifique sea la variable $buscar.

Código PHP:
    //Buscamos Toda la información requerida para Hombres y Mujeres
    
$hombreconsultar=mysql_query("SELECT $buscar FROM 1_datos_contacto WHERE sexo='Masculino'");
    
$mujerconsultar=mysql_query("SELECT $buscar FROM 1_datos_contacto WHERE sexo='Femenino'");
    
    
//Creo un array con los datos de hombres obtenidos de la DB
    
while($infohombre=mysql_fetch_array($hombreconsultar))
    {
        
$hombreduplicado[]=$infohombre["$buscar"];
    }
    
    
//Eliminamos datos duplicados del array anterior (hombres)
    
$hombre=array_unique($hombreduplicado);
    
    
//Buscamos la cantidad de registros de hombres en la base de datos 
    
foreach( $hombre as $value ) {
        
$canhombre[]=mysql_query("SELECT COUNT(*) FROM 1_datos_contacto WHERE $buscar='" $value "' AND sexo='Masculino'");           
    } 
    
    
//Cantidad de Personas por cada país
    
foreach ($canhombre as $value) {
        
$resultadohombre[]=mysql_result($value 0);
    }
    
    
//echo $resultadohombre[0] . $hombre[0];
    //echo $resultadohombre[1] . $hombre[1];
    
    
$hombresbuscar array_combine($hombre$resultadohombre);
    
    
//Comprobamos la relación entre los 2 arrays 
    /*foreach ($hombresbuscar as $key => $value) {
        echo "En $key hay $value hombres.";
    }*/
    
    ////////////////////////////////////////////////////////////////////////////
    
    //Creo un array con los datos de mujers obtenidos de la DB
    
while($infomujer=mysql_fetch_array($mujerconsultar))
    {
        
$mujerduplicado[]=$infomujer["$buscar"];
    }    
    
    
//Eliminamos datos duplicados del array anterior (mujers)
    
$mujer=array_unique($mujerduplicado);
    
    
//Buscamos la cantidad de registros de mujeres en la base de datos 
    
foreach( $mujer as $value ) {
        
$canmujer[]=mysql_query("SELECT COUNT(*) FROM 1_datos_contacto WHERE $buscar='" $value "' AND sexo='Femenino'");               
    } 
    
    
//Cantidad de Personas por cada país
    
foreach ($canmujer as $value) {
        
$resultadomujer[]=mysql_result($value 0);
    }
    
    
//echo $resultadomujer[0] . $mujer[0];
    
    
$mujeresbuscar array_combine($mujer$resultadomujer);
    
    
//Comprobamos la relación entre los 2 arrays 
    /*foreach ($mujeresbuscar as $key => $value) {
        echo "En  $key hay $value mujeres.";
    }*/
    
    
    ///////////////////////////////////////////////
    
    
$result_array array_intersect_assoc($hombresbuscar$mujeresbuscar);
    
    foreach (
$result_array as $key => $value) {
        
$datosencomun[]=$key;
        
//echo $key;
    
}
    
    
$resultsolohombre array_diff_assoc ($hombresbuscar$mujeresbuscar);
    
    foreach (
$resultsolohombre as $key => $value) {
        
$datossolohombre[]=$key;
        
//echo $key;
    
}
    
    
$resultsolomujer array_diff_assoc ($mujeresbuscar$hombresbuscar);
    
    foreach (
$resultsolomujer as $key => $value) {
        
$datossolomujer[]=$key;
        
//echo $key;
    
}
    
$sumahombresarray_sum($hombresbuscar);
    
$sumamujeresarray_sum($mujeresbuscar);
    
$sumatotal array_sum($hombresbuscar) + array_sum($mujeresbuscar); 
Con esos datos, formo la siguiente tabla:

Código PHP:
<h3>Postulantes clasificados por Estado Civil según Género</h3>
            
            <table width="90%" border="1" cellpadding="1">
              <tr>
                <td>Postulantes</td>
                <td>Hombres</td>
                <td>Muejeres</td>
                <td>Total</td>
                <td>Porcentajes</td>
              </tr>
            <? 
                
for ($i=0;$i<count($datosencomun);$i++) {
                
$datos=$datosencomun[$i];
                
$datosnombre[]=$datosencomun[$i];
            
?>                
              <tr>
                <td><? print $datosencomun[$i];?></td>
                <td><? echo $hombresbuscar["$datos"];?></td>
                <td><? echo $mujeresbuscar["$datos"];?></td>
                <td><? echo $total $hombresbuscar["$datos"] + $mujeresbuscar["$datos"];?></td>
                <td><? $frecuencia[]= ($total $sumatotal) * 100;
                       echo 
$mostrarfrecuencia = ($total $sumatotal) * 100 " %";?></td>
              </tr>
            <?
                
}
            
?>
            
            <? 
                
for ($i=0;$i<count($datossolohombre);$i++) {
                
$datos=$datossolohombre[$i];
                
$datosnombre[]=$datossolohombre[$i];
            
?>                
              <tr>
                <td><? print $datossolohombre[$i];?></td>
                <td><? echo $hombresbuscar["$datos"];?></td>
                <td>0</td>
                <td><? echo $total $hombresbuscar["$datos"];?></td>
                <td><? $frecuencia[]= ($total $sumatotal) * 100;
                       echo 
$mostrarfrecuencia = ($total $sumatotal) * 100 " %";?></td>
              </tr>
            <?
                
}
            
?>
            
            <? 
                
for ($i=0;$i<count($datossolomujer);$i++) {
                
$datos=$datossolomujer[$i];
                
$datosnombre[]=$datossolomujer[$i];
            
?>                
              <tr>
                <td><? print $datossolomujer[$i];?></td>
                <td>0</td>
                <td><? echo $mujeresbuscar["$datos"];?></td>
                <td><? echo $total $mujeresbuscar["$datos"];?></td>
                <td><? $frecuencia[]= ($total $sumatotal) * 100;
                       echo 
$mostrarfrecuencia = ($total $sumatotal) * 100 " %";?></td>
              </tr>
            <?
                
}
            
?>
              <tr>
                <td>Total</td>
                <td><?php echo $sumahombres;?></td>
                <td><?php echo $sumamujeres;?></td>
                <td><? echo $sumatotal;?></td>
                <td><? echo  $sumafrecuencias array_sum($frecuencia) . " %";?></td>
              </tr>
            </table>
Muchas gracias
  #2 (permalink)  
Antiguo 24/03/2010, 23:41
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Crear una Función en PHP

No sera que estas cargando muchas consultas ??...

Convendra en ese caso generar solo una consulta y obtener todo dependiendo de que datos vengan en ella??...

Imaginate que tienes una tabla de personas (hombres y mujeres) y quieres saber de hombres y mujeres cuantos son rubios y cuantos son morenos por separado:
Código PHP:
$HRubios 0;
$HMorenos 0;
$MRubias 0;
$MMorenas 0;
$sql "SELECT color_pelo, sexo FROM personas";
$result mysql_query($sql);
while(
$data mysql_fetch_array($result)){
    switch(
$data['sexo']){
        case 
"hombre":
            switch(
$data['color_pelo']){
                case 
"rubio"$HRubios++; break;
                case 
"moreno"$HMorenos++; break;
            }
            break;
        case 
"mujer":
            switch(
$data['color_pelo']){
                case 
"rubia"$MRubias++; break;
                case 
"morena"$MMorenas++; break;
            }
            break;
    }

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 25/03/2010, 08:40
 
Fecha de Ingreso: junio-2004
Ubicación: Villa Carlos Paz
Mensajes: 88
Antigüedad: 19 años, 10 meses
Puntos: 2
Respuesta: Crear una Función en PHP

Lo que pasa es que a veces son pocas categorías como cuando clasifico segun el estado civil: Casado, Soltero, Viudo, Divorciado.
Pero en otras ocasiones por ejemplo clasificando por paises, tendría que hacer un switch con un monton de opciones, mas de 100.

Gracias
  #4 (permalink)  
Antiguo 25/03/2010, 10:20
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Crear una Función en PHP

Cita:
Iniciado por Lachi Ver Mensaje
Lo que pasa es que a veces son pocas categorías como cuando clasifico segun el estado civil: Casado, Soltero, Viudo, Divorciado.
Pero en otras ocasiones por ejemplo clasificando por paises, tendría que hacer un switch con un monton de opciones, mas de 100.

Gracias
No es necesario que hagas todo en switch()... para eso puedes ir combinando las mismas funciones de array que tienes... de todas maneras mi mejor recomendacion es que optimices las consultas a mysql y logres definir cuantas necesitas hacer.

Despues de esto puedes generar una clase que tenga cada funcion que necesitas e ir mostrando las funciones por cada necesidad, asi las puedes llamar cuantas veces quieras sin tener que repetir tu codigo.

Saludos!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!

Etiquetas: Ninguno
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 07:52.