Foros del Web » Programando para Internet » PHP »

Modificar un array con resultados de diferentes consultas

Estas en el tema de Modificar un array con resultados de diferentes consultas en el foro de PHP en Foros del Web. Buenas, Tengo el siguiente codigo: Código PHP: $sql = "SELECT año,semana,tienda,sum(total) as importe         FROM ticketsemana          WHERE tienda=" . $tienda . " AND año=" . $año . "         GROUP BY año,semana $res=mysql_query($sql);  $numeroRegistros=mysql_num_rows($res); if($numeroRegistros<=0) {  ...
  #1 (permalink)  
Antiguo 12/04/2005, 02:24
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 10 meses
Puntos: 10
Pregunta Modificar un array con resultados de diferentes consultas

Buenas,
Tengo el siguiente codigo:
Código PHP:
$sql="SELECT año,semana,tienda,sum(total) as importe
        FROM ticketsemana 
        WHERE tienda="
.$tienda." AND año=".$año."
        GROUP BY año,semana

$res=mysql_query($sql); 
$numeroRegistros=mysql_num_rows($res);
if($numeroRegistros<=0)

 echo "
<div align='center'>"; 
 echo "
<font face='verdana' size='-2'>No hay resultados</font>"; 
 echo "
</div>"; 
}
else
{    
  $data = array();
  while($row = mysql_fetch_row($res))
  {          
      $data[] = array($row[1],$row[3]); 
  }              

La consulta me devuelve la facturacion total de una tienda por semana durante un año en concreto. Por lo tanto el array quedaria mas o menos de la siguiente manera:
$data[0]= semana1,FacturacionSemana1
$data[1]= semana2,FacturacionSemana2
$data[2]= semana3,FacturacionSemana3
$data[3]= semana4,FacturacionSemana4
Lo q me gustaria hacer es poder ampliar este array con el resultado de otra consulta, para poder meter mas de un año en este array.
Algo tipo asi:
Código PHP:
$sql2="SELECT año,semana,tienda,sum(total) as importe
        FROM ticketsemana 
        WHERE tienda="
.$tienda." AND año=".$año2."
        GROUP BY año,semana

$res2=mysql_query($sql2); 
$numeroRegistros2=mysql_num_rows($res2);
if($numeroRegistros2<=0)

 echo "
<div align='center'>"; 
 echo "
<font face='verdana' size='-2'>No hay resultados</font>"; 
 echo "
</div>"; 
}
else
{    
  $data = array();
  while($row = mysql_fetch_row($res2))
  {          
      $data[] = array(valores q ya hay-$row1,Valores q ya hay-$row[3],Aqui meterle el resultado de la sql2); 
  }              

Asi podria tener en un solo array:
Data[0]=semana1-facturacionsemana1año1,facturacionsemana1año2
Data[1]=semana2-facturacionsemana2año1,facturacionsemana2año2
Data[2]=semana3-facturacionsemana3año1,facturacionsemana3año2
Data[3]=semana4-facturacionsemana4año1,facturacionsemana4año2

Todo este lio sirve para poder dibujar un grafico, en el cual tengo q pasarle este array con los diferentes valores. cada valor es el punto, para poder dibujar el trazado del mismo.
Agradeceria mucho cualquier idea o solucion...
Muchas gracias de antemano,

Saludos

Última edición por sergi_climent; 12/04/2005 a las 02:26
  #2 (permalink)  
Antiguo 12/04/2005, 02:52
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Pués.. para ir agregando elemento a un arreglo... puede servirte algo como:
Código PHP:
$arreglo[]="valor1";
$arreglo[]="valor2";
$arreglo[]="valor3";
$arreglo[]="valor4"
Edito:
Pregunta: ¿todo eso de "semana1-facturacionsemana1año1,facturacionsemana1año2" son elementos de un arreglo ó es una simplecadena?... creo no entendí...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 12/04/2005 a las 02:58
  #3 (permalink)  
Antiguo 12/04/2005, 03:20
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 10 meses
Puntos: 10
Son los elementos q componen el array.
De la primera consulta obtengo esto:
array(semana-facturacion1)q esto queda asi:
array(1,3000)
array(2,6000)
y lo q quiero obtener de la segunda consulta es esto:
Los resultados q ya tenia mas los resultados de la segunda consulta en otra columna
array(1,3000,6000)
array(2,3500,6500)...
  #4 (permalink)  
Antiguo 12/04/2005, 03:29
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... entonces podrías hacerlo como te indiqué... digo!.. es funcional... más!.. quizá la función array_push() te sea más útil: http://mx.php.net/manual/es/function.array-push.php

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 12/04/2005, 03:48
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 10 meses
Puntos: 10
De acuerdo

Gracias jam1138! Probare a ver que tal, pero con esto creo q tengo bastante.
Saludos
  #6 (permalink)  
Antiguo 12/04/2005, 04:29
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 10 meses
Puntos: 10
Pregunta

Tengo el siguiente codigo. El array_push no me funciona. Me surpime todo lo q hay en el primer array. Alguno sabe el motivo?
Código PHP:
$sql="SELECT any,setmana,id_tenda,sum(total) as import 
FROM ticketsetmana 
WHERE id_tenda="
.$tenda." AND any=2005
GROUP BY any,setmana
ORDER BY any,setmana"
;
$res=mysql_query($sql); 
$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
{    
    
$data = array();
    while(
$row mysql_fetch_row($res))
    {          
          
$data[]= array($row[1],$row[3]); 
    }              
}
$sql="SELECT any,setmana,id_tenda,sum(total) as import 
FROM ticketsetmana 
WHERE id_tenda="
.$tenda." AND any=2004
GROUP BY any,setmana
ORDER BY any,setmana"
;
$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
{    
    while(
$row mysql_fetch_row($res))
    {          
    
$data[]=array_push($data[],$row[3]); 
    }          
}
$graph->SetDataValues($data); 
Saludos
  #7 (permalink)  
Antiguo 12/04/2005, 04:57
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 10 meses
Puntos: 771
Hola sergi_climent

Pregunta de novato: ¿no debería ser así?
Código PHP:
{    
    while(
$row mysql_fetch_row($res))
    {          
    
array_push($data,$row[3]); //***
    
}          
}
$graph->SetDataValues($data); 
Saludos,
  #8 (permalink)  
Antiguo 12/04/2005, 05:01
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 10 meses
Puntos: 10
tambien lo he probado, pero he obtenido el mismo resultado... solo se guarda el resultado de la primera consulta...

Última edición por sergi_climent; 12/04/2005 a las 05:17
  #9 (permalink)  
Antiguo 12/04/2005, 05:55
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 10 meses
Puntos: 10
Puede ser q no me haga el push xq el numero de registros q da en el resultado de la primera consulta sea totalmente diferente al q me da a la segunda consulta?¿?¿? en la de 2004 tengo las 53 semanas q tenia el año, en cambio el 2005 solo llevamos 14 semanas completas...
Si es asi, se os ocurre alguna manera de rellenar el array para q correspondan las semanas de cada año con su facturacion correspondiente?
Alguna idea?
Gracias de Antemano,
Saludos
  #10 (permalink)  
Antiguo 12/04/2005, 09:06
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 10 meses
Puntos: 10
alguna ayuda?¿?
alguna idea?¿?

Gracias.
  #11 (permalink)  
Antiguo 12/04/2005, 10:47
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 10 meses
Puntos: 771
Hola de nuevo.

Fijandome en tu código, no veo donde haces la segunda consulta. Pones $sql="SELECT... pero no pones $res=mysql_query($sql);

Saludos,
  #12 (permalink)  
Antiguo 12/04/2005, 10:56
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 10 meses
Puntos: 10
ha sido un error cuando lo he copiado aqui, y pido disculpas. Pero Igualmente no me funciona correctamente... Llevo todo el dia con esto...
Alguna idea de como hacerlo? aunque sea totalmente diferente a esta.
Solo cargar el resultado de varias consultas en un array.
Gracias,

Saludos
  #13 (permalink)  
Antiguo 13/04/2005, 01:14
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 10 meses
Puntos: 10
Desacuerdo No me funciona correctamente el ARRAY_PUSH

nada de nada?

Última edición por sergi_climent; 13/04/2005 a las 04:36
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 05:30.