Foros del Web » Programando para Internet » PHP »

Sacar Promedio (array)

Estas en el tema de Sacar Promedio (array) en el foro de PHP en Foros del Web. Hola a todos, tengo un problema para sacar promedio, es de un examen el cual se genera atravez de una base de datos en mysql, ...
  #1 (permalink)  
Antiguo 26/01/2010, 23:04
Avatar de JHTKoZ  
Fecha de Ingreso: noviembre-2009
Ubicación: Teocaltiche, Mexico
Mensajes: 67
Antigüedad: 15 años
Puntos: 0
Pregunta Sacar Promedio (array)

Hola a todos, tengo un problema para sacar promedio, es de un examen el cual se genera atravez de una base de datos en mysql, aquí pongo la sección del código en php para generar mi formulario:

Código PHP:
//ya hice la conexión con la case de datos, a continuacion imprimo las preguntas en una tabla, y sus opciones con sus respectivos radio

$id=1;
while (
$row3 mysql_fetch_array($result3))
{
    
$id++;
    echo 
'<TR height="150"><TD><P>' $row3['Numero'] . '.-' $row3['Pregunta'] . '</P></TD>';
        echo 
'<td><P><INPUT type="radio" name="op'.$id.'" value"1"> 1. ' $row3['Opcion1'] . '</P><P><INPUT type="radio" name="op'.$id.'" value"2"> 2. ' $row3['Opcion2'] . '</P><P><INPUT type="radio" name="op'.$id.'" value"3"> 3. ' $row3['Opcion3'] . '</P><P><INPUT type="radio" name="op'.$id.'" value"4"> 4. ' $row3['Opcion4'] . '</P></td></tr>';

Y pues esta con su respectivo boton de submit y otros datos, y luego tengo mi documento php en el cual se supone que se le asignan los valores de op1, op2... opn, y lo quiero hacer mediante un array

Código PHP:
$id $_POST['id']; //el valor de id es del numero de preguntas que se generaron
$i=1;
    while (
$i id)
    {
        
$id $_POST['id'];
        
$op[i] = $_POST['op$i'];//aqui asigno a el array op en posicion i, el valor del POST que tenga en op[I]n[/I]
        
$i++;
    }
    echo 
"$op[1], $op[2]"
Y pues oviamente no me sale, se que tengo algo mal con el uso de array, pero pues no se como hacerle :S, espero me puedan ayudar

Última edición por JHTKoZ; 27/01/2010 a las 00:55
  #2 (permalink)  
Antiguo 26/01/2010, 23:41
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años, 6 meses
Puntos: 50
Respuesta: Sacar Promedio (array)

La verdad es que no entiendo bien lo que haces, pero me parece que te estás complicando mucho. Dado un array cualquiera podemos obtener su promedio así:
Código PHP:
$promedio=array_sum($cualquiera)/count($cualquiera); 
Espero que te sea útil. ¡Suerte!
  #3 (permalink)  
Antiguo 27/01/2010, 00:08
Avatar de unreal4u  
Fecha de Ingreso: octubre-2008
Mensajes: 72
Antigüedad: 16 años
Puntos: 10
Respuesta: Sacar Promedio (array)

o mucho mejor aún (más rápido tb) es haciendo la consulta en la consulta:

Código SQL:
Ver original
  1. SELECT AVG(nota) AS nota FROM notas;

Saludos !!
  #4 (permalink)  
Antiguo 27/01/2010, 00:54
Avatar de JHTKoZ  
Fecha de Ingreso: noviembre-2009
Ubicación: Teocaltiche, Mexico
Mensajes: 67
Antigüedad: 15 años
Puntos: 0
Respuesta: Sacar Promedio (array)

Si, creo que no em explique bien, aunque eso de sacar el promedio me sirvió, muchas gracias, mi problema es que en la parte del código donde genero las preguntas, se supone que hay una pregunta, y 4 opciones de respuesta, y cada opción con su radio, como el name de cada opción se va a llamar op1, en la primera vuelta, luego da la otra vuelta y en la segunda pregunta se llamara op2, y en la tercera op3, asi sucesivamente ya que se generaran n preguntas, es por eso que en el name les pongo name="op'.$id.' para que aumente el nombre

Hasta ahí se genera eso de los name, mi duda es como sacar los value de cada op, en el formulario para sacar el promedio. En resumen no se aplicar los array correctamente :(
  #5 (permalink)  
Antiguo 27/01/2010, 06:03
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 11 meses
Puntos: 89
Respuesta: Sacar Promedio (array)

Pues si los radios siempre son 4, simplemente debes usar un for, o algún bucle para recorrer.

Ejemplo :

Código PHP:
Ver original
  1. $suma = 0;
  2. for($i = 0; $i < 4; $i++) {
  3.     $suma += $_POST['op'.($i+1)];
  4. }
  5. echo ($suma/4);

Espero te sirva.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #6 (permalink)  
Antiguo 27/01/2010, 07:58
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años, 6 meses
Puntos: 50
Respuesta: Sacar Promedio (array)

En la página del formulario, a todos los radios pertenecientes a la misma pregunta debes ponerles el mismo nombre; pero va cambiando el value de cada uno según la opción:
Código HTML:
<input type="radio" name="pregunta1" value="1" />Opci&oacute;n 1
<input type="radio" name="pregunta1" value="2" />Opci&oacute;n 2
<input type="radio" name="pregunta1" value="3" />Opci&oacute;n 3
<input type="radio" name="pregunta1" value="4" />Opci&oacute;n 4
Entonces en el script que procesa obtienes los resultados así:
Código PHP:
echo $_REQUEST['pregunta1']; // En lugar de "request" usa el método que tenga tu formulario 
Fíjate que si no les pones el mismo nombre a los radios que son de una misma pregunta, en el formulario tampoco se comportarán como opciones de lo mismo (se podrán seleccionar varias respuestas simultáneas para la misma pregunta). ¡Suerte!

PD: Unreal4u: sí, ese método es más directo, pero sirve para obtener el promedio en una consulta SQL, no el promedio de cualquier array en general.

Etiquetas: promedio
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 22:53.