Foros del Web » Programando para Internet » PHP »

Problema con busqueda en dos tablas

Estas en el tema de Problema con busqueda en dos tablas en el foro de PHP en Foros del Web. Hola a todos, tengo un problema con una búsqueda de datos, quiero que me sume la cantidad de productos vendidos que están en una tabla, ...
  #1 (permalink)  
Antiguo 02/04/2009, 14:20
 
Fecha de Ingreso: mayo-2006
Mensajes: 9
Antigüedad: 17 años, 10 meses
Puntos: 0
Problema con busqueda en dos tablas

Hola a todos, tengo un problema con una búsqueda de datos, quiero que me sume la cantidad de productos vendidos que están en una tabla, pero que no sume los productos que no son del mes y año indicado en otra tabla, aquí está el código:

Código:
        //CREAMOS BUCLE DEL 1 AL 12
        for($x=1;$x<=12;$x++){
		//SACAMOS TOTAL DE PRODUCTOS	  
        $buscartotal = mysql_query("SELECT idp FROM $tablapedidos WHERE mes='$x' && ano=2008");
        while($buscartotal2 = mysql_fetch_array($buscartotal)){
		$idp=$buscartotal2['idp'];
		$buscarprod = mysql_query("SELECT SUM(cantidadp) as sumatotal FROM $tablapedidosp WHERE codigop='$codigo' && idpp='$idp'");
		$buscarprod2 = mysql_fetch_array($buscarprod);
		$buscarprod2['sumatotal'];
		$arrayprod[] = $buscarprod2['sumatotal'];
		}
		$total = array_sum($arrayprod);
		echo $total;
El problema es que tarda mucho la búsqueda y no me muestra casi ningún resultado.
  #2 (permalink)  
Antiguo 02/04/2009, 14:25
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 18 años, 11 meses
Puntos: 839
Respuesta: Problema con busqueda en dos tablas

Creo que es más fácil hacerlo todo en una misma consulta:
Código MySQL:
Ver original
  1. SELECT SUM(s.catidadp) sumatotal FROM tablapedidosp s JOIN tablapedidos p ON p.idp = s.idpp WHERE s.codigop = 'codigo' AND p.mes = 'mes' AND p.ano=2008;
No lo he probado, puede que tenga errores, pero la idea es esa.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 08:10.