Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/10/2013, 19:42
bendark23
 
Fecha de Ingreso: julio-2005
Mensajes: 73
Antigüedad: 18 años, 10 meses
Puntos: 0
Porque no Funciona? error en consulta

tengo una tabla general llamada partos_server en ella tengo registrada años que van desde el 2010 - 2011 - 2012 - 2013. cada una contiene informacion de varios sitios identificados por site_id, los sitios son 7: 20 - 21 - 22 -23 -24 -25 - 27.


bien lo que ocupo es sacar datos promedio de cada sitio por cada semana del año. de los 4 años.

mi tabla luce mas o menos asi.

Código:
id    site_id    vivos   muertos   momificados                peso        evento                  semana *aki guardo el numero de la semana segun la fecha
1      20            13         0               1                  9.99          2012-09-29
1      21            17         0               0                  11.99          2013-09-29
1      22            18         0               0                  12          2011-09-29
1      20            11         1               2                  8          2010-09-29
1      22            9           2               0                  9.99          2011-09-29
1      22            10         0               1                  14          2013-09-29

bien para ello mu ayude de ciclos.. soy novato quizas haya una forma de hacerlo mas rapido pero no se me ocurre nada para mejorarlo - por supuesto que estoy abierto a mejorar el codigo.

aqui el codigo de la tabla granjas saco la informacion del site_id segun el tipo de granja

Código PHP:
$sql mysql_query("SELECT site_id FROM granjas where granja_tipo=2");/* identifico las granjas que me interesan
  while( $row = mysql_fetch_array( $sql) ) {
        $granja[] = $row['site_id'];
        $i++ ;
      }
  //echo implode(",", $granja)."<br>";
  //echo "Las Granjas son ".$i."<br>";
  $sql2 = mysql_query("SELECT DISTINCT (YEAR( evento )) as anio FROM partos_server"); /* saco los diferentes años que estan en las tablas
  while( $row = mysql_fetch_array( $sql2) ) {
    $anio[] = $row['anio'];
    $a++;
    }
   // echo implode(",", $anio)."<br>";
   // echo "Los Años son ".$a."<br>"; 
    
    echo "<table>"; //EMPIEZA A CREAR LA TABLA CON LOS ENCABEZADOS DE TABLA
     echo "<tr>";//<tr> CREA UNA NUEVA FILA
     echo "<td>Sitio</td>";//<td> CREA NUEVA COLUMNA
     echo "<td>prom Nacido</td>";
     echo "<td>Fecha</td>";
     echo "<td>Semana</td>";
     echo "</tr>"; 
     for ( $j = 0 ; $j < $i ; $j ++) { /* ciclo de las granjas
        for ( $b = 0 ; $b < $a ; $b ++) { /* ciclo de los años
           $s=0; unset($semana);

            $sql3 = mysql_query("SELECT DISTINCT(semana) as semana FROM partos_server where YEAR(evento)=".$anio[$b]);
            while( $row = mysql_fetch_array( $sql3) ) { /* saco el numero de las semanas segun los años
                $semana[] = $row['semana'];
                $s++;
              }
           
            echo implode(",", $semana)." AÑO ".$anio[$b]."<br>";
            for ( $t = 0 ; $t < $s ; $t++) {
                
                $query = @mysql_query("SELECT AVG(vivos) as promedio,site_id,year(evento)
                                      as anio FROM `partos_server` WHERE site_id = ".$granja[$j]."  and YEAR(evento)=".$anio[$b]." and semana = ".$semana[$t]) or die("Error en Consulta.- ".mysql_error());
                //echo "SELECT AVG(vivos) as promedio,site_id,year(evento) as anio,semana FROM `partos_server` WHERE site_id =".$granja[$j]." and YEAR(evento)=".$anio[$b]." and semana =".$semana[$t]."<br>";                      
                 
                    $reg = mysql_fetch_array($query, MYSQL_BOTH);//LA VARIABLE $REG GUARDA LOS REGISTROS DE LA CONSULTA REALIZADA
                    echo "<tr>";
                        echo "<td>".$site = $reg['site_id']."</td>";//EN CADA CELDA SE COLOCA EL CONTENIDO DE REG
                        echo "<td>".$promedio = round($reg['promedio'],2)."</td>";
                        echo "<td>".$anio = $reg['anio']."</td>";
                        echo "<td>".$semana = $reg['semana']."</td>";
                        $reg = mysql_fetch_array($query, MYSQL_BOTH);
                   echo "</tr>";
                 } 
            
              
            }
           
          }
        echo "</table>";//FINALIZA LA TABLA 

el error es este en uno de los saltos del ciclo el arreglo semana[] me toma valores que ni al caso tales como / , d - a, t etc y no entiendo porque aqui les pongo lo que me sale cuando corro mi archivo php

Código:
39,34,36,35,38,33,44,43,37,41,42,40,45,46,13,14,17,1,21,3,15,5,26,19,16,2,22,18,20,4,24,23,11,31,12,32,25,6,7,27,30,8,29,28,10,9,48,47,50,51,49,52 AÑO 2012
Error en Consulta.- You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/' at line 2
Sitio	prom Nacido	Fecha	Semana
20	11.9	2012
de antemano muchas gracias.