Ver Mensaje Individual
  #6 (permalink)  
Antiguo 05/07/2011, 19:30
CristhianUNSa
 
Fecha de Ingreso: junio-2011
Mensajes: 23
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Duplicar Consulta para manejo de datos

Cita:
Iniciado por carlos_belisario Ver Mensaje
empiezan mis preguntas te trae datos la consulta?? si no te trae datos deberias de empezar por ahi, luego que tengas los datos que es lo que deseas comparar?? porque entre tanto stock me perdi, ademas si duplicas la consulta estarias comparando la consulta con ella misma no?? aunque creo que tienes que explicar un poco mejor que es lo que deseas hacer para poderte ayudar
Bueno respondo tus dudas. La consulta trae todos los datos que requiero, como dije, me funciona haciendo una consulta por cada producto que tengo, pero hacer tantas consultas (son 44 productos por ahora) me parece un poco exagerado. Lo que quiero hacer es que se duplique esas 44 veces (a mi parecer sería mas rápido). No quiero comparar consultas entre sí, lo que quiero comparar es el ID que tengo de un producto contra todas las filas del query(comparando los ID obviamente como en el código)
Código PHP:
if ($fila['products_id']==$listing['products_id']) 
.
Utilizando 1 sola consulta no me alcanza a menos que la duplique, porque cuando este while termine $consultaprod queda sin filas (quedando solo en FALSE)
Código PHP:
while ($fila=tep_db_fetch_array($consultaprodb)) 
En ese caso dice $consultaprodb porque pensé que se duplicaba haciendo $consultaprodb=$consultaprod , pero solo hace referencia a esta última.

Te dejo el código que SÍ me funciona, pero es engorroso en tiempo para mí

Código PHP:
if(!$haycliente){
                
$prod_list_contents .= '        <td align="right">' $listing['products_quantity'] . '</td>';
            }
            else{
                
$stocksemanal=$listing['products_quantity'];
                
//$encontrado=false;
                
$consultaprod=tep_db_query("
                    SELECT op.products_id, SUM( op.products_quantity ) AS Acumulado
                    FROM customers c, orders o, orders_products op
                    WHERE c.customers_dob >= '"
.$lunes."'
                    AND c.customers_dob <= '"
.$sabado."'
                    AND c.customers_id = o.customers_id
                    AND o.orders_id = op.orders_id
                    GROUP BY op.products_id
                "
) or die("Problemas en el select:".mysql_error());
                while (
$fila=tep_db_fetch_array($consultaprod)){
                    if (
$fila['products_id']==$listing['products_id']) {
                        
$stocksemanal-=$fila['Acumulado'];
                    }
                }
                
                
$prod_list_contents .= '        <td align="right">' $stocksemanal '</td>';
            } 
Gracias por tus respuestas

EDITO: Olvidé mencionar algo importante, todo el código de acá arriba está dentro de un while, por lo que las ID de $listing['products_id'] van cambiando hasta recorrer todos los productos