Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/06/2006, 12:38
hebo
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 18 años, 9 meses
Puntos: 3
Operaciones con una consulta MySql

Hola, Tengo una duda grande, como puedo cojer todos los datos de una consulta ( hacer por ejemplo un $sql1="SELECT * FROM tpv.examens WHERE `asig` = 'na'"; ) y que me sume todo lo que me dé y lo divida por el numero de rows optenidas? el codigo completo es
Código PHP:
<? 
    mysql_connect
("localhost","root",""); 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>Puntos</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<meta http-equiv="Pragma" content="no-cache" /> 
<style type="text/css"> 
<!-- 
a.p:link { 
    color: #0066FF; 
    text-decoration: none; 

a.p:visited { 
    color: #0066FF; 
    text-decoration: none; 

a.p:active { 
    color: #0066FF; 
    text-decoration: none; 

a.p:hover { A
    color: #0066FF; 
    text-decoration: underline; 

a.ord:link { 
    color: #000000; 
    text-decoration: none; 

a.ord:visited { 
    color: #000000; 
    text-decoration: none; 

a.ord:active { 
    color: #000000; 
    text-decoration: none; 

a.ord:hover { 
    color: #000000; 
    text-decoration: underline; 

--> 
</style> 
</head> 
<body bgcolor="#FFFFFF"> 
<script language="JavaScript"> 
function muestra(queCosa) 

    alert(queCosa); 

</script> 
<div align="center"><strong><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Paginación 
de Resultados de una consulta SQL (sobre MySQL)<br><br><p><a href="http://www.pclandia.com">www.pclandia.com</a></p> </font></strong> </div> 
<hr noshade style="color:CC6666;height:1px"> 
<br> 
<? 
//inicializo el criterio y recibo cualquier cadena que se desee buscar 
$criterio ""
$txt_criterio ""
if (!empty(
$_GET['criterio'])){ 
   
$txt_criterio $_GET["criterio"]; 
   
$criterio " where ex_id like '" $txt_criterio "' or asig like '%" $txt_criterio "' or fecha like '" $txt_criterio "'"

if (
$_GET["mens"] == "ok"){ 
   echo 
"Se hizo la acción correctamente";



$sql="SELECT * FROM tpv.examens ".$criterio
$res=mysql_query($sql) or
die(
"Could not connect: " mysql_error());
$numeroRegistros=mysql_num_rows($res); 
if(
$numeroRegistros<=0

    echo 
"<div align='center'>"
    echo 
"<font face='verdana' size='-2'>No s'han trobat resultats.</font>"
    echo 
"</div>"
}else{ 
    
//////////elementos para el orden 
    
if(!isset($orden)) 
    { 
       
$orden="ex_id"
    } 
    
//////////fin elementos de orden 

    //////////calculo de elementos necesarios para paginacion 
    //tamaño de la pagina 
    
$tamPag=5

    
//pagina actual si no esta definida y limites 
    
if(!isset($_GET["pagina"])) 
    { 
       
$pagina=1
       
$inicio=1
       
$final=$tamPag
    }else{ 
       
$pagina $_GET["pagina"]; 
    } 
    
//calculo del limite inferior 
    
$limitInf=($pagina-1)*$tamPag

    
//calculo del numero de paginas 
    
$numPags=ceil($numeroRegistros/$tamPag); 
    if(!isset(
$pagina)) 
    { 
       
$pagina=1
       
$inicio=1
       
$final=$tamPag
    }else{ 
       
$seccionActual=intval(($pagina-1)/$tamPag); 
       
$inicio=($seccionActual*$tamPag)+1

       if(
$pagina<$numPags
       { 
          
$final=$inicio+$tamPag-1
       }else{ 
          
$final=$numPags
       } 

       if (
$final>$numPags){ 
          
$final=$numPags
       } 
    } 

//////////fin de dicho calculo 

//////////creacion de la consulta con limites 
$sql="SELECT * FROM tpv.examens WHERE `asig` = 'na' ".$criterio." ORDER BY ".$orden.",ex_id ASC LIMIT ".$limitInf.",".$tamPag;  
$res=mysql_query($sql); 

//////////fin consulta con limites 
echo "<div align='center'>"
echo 
"<font face='verdana' size='-2'>Trobats ".$numeroRegistros." resultats.<br>"
echo 
"ordenados por <b>".$orden."</b>"
if(isset(
$txt_criterio)){ 
    echo 
"<br>Valor de filtre: <b>".$txt_criterio."</b>"

echo 
"</font></div>"
echo 
"<table align='center' width='80%' border='0' cellspacing='1' cellpadding='0'>"
echo 
"<tr><td colspan='3'><hr noshade></td></tr>"
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=ex_id&criterio=".$txt_criterio."'>Nº de examen</a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=asig&criterio=".$txt_criterio."'>Asignatura </a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=nota&criterio=".$txt_criterio."'>Nota</a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=fecha&criterio=".$txt_criterio."'>fecha</a></th>";

while(
$registro=mysql_fetch_array($res)) 

?> 
   <!-- tabla de resultados --> 
  <tr bgcolor="#CC6666" onMouseOver="this.style.backgroundColor='#FF9900';this.style.cursor='hand';" onMouseOut="this.style.backgroundColor='#CC6666'"o"];">
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><center><b><? echo $registro["ex_id"]; ?></b></center></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><center><b> 
<?     
        $link 
mysql_connect("localhost","root",""); 
        
mysql_select_db("tpv",$link);
    
$asig $registro["asig"];
    switch(
$asig) {
    case 
na:
        echo 
"Naturals";
        break;
    case 
so:
        echo 
"Socials";
        break;
    case 
ma:
        echo 
"Matematiques";
        break;
    case 
le:
        echo 
"Llengua castellana";
        break;
            case 
ca:
        echo 
"Llengua catalana";
        break;
            case 
in:
        echo 
"in";
        break;
            case 
te:
        echo 
"tecnologia";
        break;
            case 
op:
        echo 
"Optativa";
        break;
    default:
    echo 
"Defineix ".$registro['asig'];
}  

 
     
?>    </b></center></font></td>
    <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><center><b><? echo $registro["nota"]; ?></b></center></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><center><b><? echo $registro["fecha"]; ?></b></center></font></td>

  </tr> 
   <!-- fin tabla resultados --> 
<? 

}//fin while 
$sql1="SELECT * FROM tpv.examens WHERE `asig` = 'na'";
$res1=mysql_query($sql1); 
while(
$registro=mysql_fetch_array($res1)) 

$nota $registro["nota"];
}
echo 
"</table>";
echo 
$nota;
 
}
//fin if 
//////////a partir de aqui viene la paginacion 
?> 
    <br> 
    <table border="0" cellspacing="0" cellpadding="0" align="center"> 
    <tr><td align="center" valign="top"> 
<? 
    
if($pagina>1
    { 
       echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."&criterio=".$txt_criterio."'>"
       echo 
"<font face='verdana' size='-2'>Anterior.</font>"
       echo 
"</a> "
    } 

    for(
$i=$inicio;$i<=$final;$i++) 
    { 
       if(
$i==$pagina
       { 
          echo 
"<font face='verdana' size='-2'><b>".$i."</b> </font>"
       }else{ 
          echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&criterio=".$txt_criterio."'>"
          echo 
"<font face='verdana' size='-2'>".$i."</font></a> "
       } 
    } 
    if(
$pagina<$numPags
   { 
       echo 
" <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&criterio=".$txt_criterio."'>"
       echo 
"<font face='verdana' size='-2'>siguiente</font></a>"
   } 
//////////fin de la paginacion 
?> 
    </td></tr> 
    </table> 
<hr noshade style="color:CC6666;height:1px"> 
<div align="center"><font face="verdana" size="-2"><a class="p" href="examens_save.php">::Agregar examen::</a>  </font></div> 
Cercar:<br>
<form action="ole.php" method="get"> 
Paraules a cercar: 
<input type="text" name="criterio" size="22" maxlength="150"> 
<input type="submit" value="Buscar"> 
</form> <br>
 <br>

</body> 
</html> 
<? 
    mysql_close
(); 
?> 

  </body>
</html>
este es el codigo donde quiero que despues de los resultados ( tabla con while ) me de una variable $nota_final con el resultado de la operación. La operacion es :
Cita:
Si hay 3 resultados con asig = na, que me sume su nota y me la divida entre 3
no sé si me expliqué :) agradeceria su ayuda ya que esto lo hago como medio para aprender php :)