Foros del Web » Programando para Internet » PHP »

ayuda con arreglos

Estas en el tema de ayuda con arreglos en el foro de PHP en Foros del Web. Hola amigos ire directo al grano. Estoy hciendo un sistema para i escuela en el cual saco estadisticas, bueno mas bien el profe registra en ...
  #1 (permalink)  
Antiguo 13/05/2009, 01:47
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 5 meses
Puntos: 0
Exclamación ayuda con arreglos

Hola amigos ire directo al grano.
Estoy hciendo un sistema para i escuela en el cual saco estadisticas, bueno mas bien el profe registra en una tabla el porcentaje de alumnos aprobados y el sistema con una simple operacion saca el de reprobados, y pues estoy generando una grafica de barras.
Les muestro el codigo

Código PHP:
 <!--   table {   font: 11px Verdana, Arial, Helvetica, sans-serif;   color: #777;   padding:7px;   }   -->   </style>
 <?php
include("config.php");
$usuario="xraven";
$grupo="BA";
$sql="SELECT * FROM segcurso WHERE usuario='$usuario' and grupo='$grupo'";
$result=mysql_query($sql) or die("error al intentar ejecutar la sentencia sql, mysql dice: ").mysql_error();

while(
$fila=mysql_fetch_object($result))
{
    
$aprobados1=$fila->u1;
    
$reprobados1=100-$aprobados1;
    
$aprobados2=$fila->u2;
    
$reprobados2=100-$aprobados2;
    
$aprobados3=$fila->u3;
    
$reprobados3=100-$aprobados3;
    
$aprobados4=$fila->u4;
    
$reprobados4=100-$aprobados4;
    
$aprobados5=$fila->u5;
    
$reprobados5=100-$aprobados5;
    
$aprobados6=$fila->u6;
    
$reprobados6=100-$aprobados6;
    
$aprobados7=$fila->u7;
    
$reprobados7=100-$aprobados7;
    
$aprobados8=$fila->u8;
    
$reprobados8=100-$aprobados8;
}
 
$datosTabla = array(
     array( 
"aprobados"$aprobados1"#BDDA4C"),
    array( 
"Reprobados"$reprobados1"#FF9A68"),
    array( 
"aprobados"$aprobados2"#BDDA4C"),
    array( 
"Reprobados"$reprobados2"#FF9A68"),
    array( 
"aprobados"$aprobados3"#BDDA4C"),
    array( 
"Reprobados"$reprobados3"#FF9A68"),
    array( 
"aprobados"$aprobados4"#BDDA4C"),
    array( 
"Reprobados"$reprobados4"#FF9A68"),
    array( 
"aprobados"$aprobados5"#BDDA4C"),
    array( 
"Reprobados"$reprobados5"#FF9A68"),
    array( 
"aprobados"$aprobados6"#BDDA4C"),
    array( 
"Reprobados"$reprobados6"#FF9A68"),
    array( 
"aprobados"$aprobados7"#BDDA4C"),
    array( 
"Reprobados"$reprobados7"#FF9A68"),
    array( 
"aprobados"$aprobados8"#BDDA4C"),
    array( 
"Reprobados"$reprobados8"#FF9A68"),
    );
$cont=0;
$maximo 1;
foreach ( 
$datosTabla as $ElemArray ) { $maximo += $ElemArray[1]; }   
?>
<body>  
 <table width="400" cellspacing="0" cellpadding="2">
 <?php foreach( $datosTabla as $ElemArray 
 {   
$porcentaje round$ElemArray[1]);
if(
$ElemArray[1]!=and $ELemArray[1]<=99)
{

 
?>   <tr>   <td width="20%">
 <strong>
 <?
 
echo "Unidad ".$cont++;
 echo 
"<br>";
  echo( 
$ElemArray[0] ) ?></strong></td>   <td width="10%"><? echo( $porcentaje ?>%</td>
 <td>   <table width="<? echo($porcentaje?>%" bgcolor="<? echo($ElemArray[2]) ?>">
    <tr><td> </td></tr>
    <tr><td> </td></tr>  
     </table>   
     </td>  
      </tr>  
       <?php 
       
}
       } 
?>   
       </table>  
        </body>
           </html>
Les dire que la tabla tiene 8 campos uno para cada unidad y tambien tiene un campo en el cual el profesor captura el numero de unidades que tiene el temario pero por definicion son hasta 8 unidades las que tiene el temario.

Bueno el codigo me muestra bien las 8 unidades con sus reprobados y aprobados pero el problema viene cuando yo quiero solamente mostrar las que tiene el temario si tiene 3 unidades que solamente muestre grafica para 3 unidades y que no me muestre las otras en 0.

Alguien de ustedes sabe como hacer eso ya me estuve rompiendo la cabeza buscando en google y aqui pero no he encontrado nada, espero que me puedan ayudar
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #2 (permalink)  
Antiguo 13/05/2009, 05:22
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Respuesta: ayuda con arreglos

Hola,

una preg: y si nunca cambian de 8 a 10? entonces q haras? modificar el codigo cada vez q eso varie?

porque no creas un codigo el cual sirva para un numero indefinido de alumnos?

ejemplo:

Código PHP:
include("config.php"); 
$usuario="xraven"
$grupo="BA"
$sql="SELECT * FROM segcurso WHERE usuario='$usuario' and grupo='$grupo'"
$result=mysql_query($sql) or die("error al intentar ejecutar la sentencia sql, mysql dice: ").mysql_error(); 
$num_filas mysql_num_row($result);
//Variable
$x=1;
while(
$fila=mysql_fetch_object($result)) 

    
$aprobados.$x=$fila->u.$x
    
$reprobados.$x=100-$aprobados.$x
   
$x++;
}
for(
$x=1;$x<=$num_filas;$x++){
$datosTabla[$x] = array(
                        array( 
"aprobados",$aprobados.$x"#BDDA4C"), 
                        array( 
"Reprobados"$reprobados.$x"#FF9A68")
                        );

no he probado el codigo, solo el de montar el array q necesitas---- dime a ver q tal te parece la idea...
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #3 (permalink)  
Antiguo 13/05/2009, 10:47
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: ayuda con arreglos

mmm esque el numero de unidades nuca va a ser mayor a 8 por eso esta definido en 8 en el sistema solamente va a registrar el porcentaje de alumnos aprobados por unidad
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #4 (permalink)  
Antiguo 14/05/2009, 00:40
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Respuesta: ayuda con arreglos

Buenos dias
como veas... Solo tienes q limitar q al mostrar el array te muestre los 3 q hay y no los demas, y eso lo consigues mirando el numero de registros q te devuelve la SQL, creo.
igualmente el codigo q te puesto te mostrar solo los registros q et devuelva la SQL, q pal caso es lo mismo... ya sea 3 que 8 que 100 que 1...



saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 14/05/2009 a las 00:59
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 21:40.