ayuda en consulta

quiero obtener de mi lista de art?culos cual es el mas vendido dependiendo de un rango de fechas, pero la hacer la b?squeda se queda buscando y no hace nada este es el c?digo que tengo

// primero obtengo el total de registros de mi tabla de productos para recorrer con un while
$numero = ( "SELECT COUNT(*) AS numero_registros FROM productos ");
sc_lookup(rsNo, $numero);
$No_Reg = {rsNo[0][0]};
echo "total de registros " . $No_Reg;
echo “<br>”;

// en este segundo leo nuevamente la tabla para leer la clave de cada articulo

sc_lookup(dsarticulo, "SELECT codigo_producto from productos ");

$x =0;
while ($x < $No_Reg){

$codigo= {dsarticulo[$x][0]};

// en este punto tengo el problema
// obtengo la clave del articulo para buscarlo en la tabal de ventas
// cuando quito esta parte de la consulta se recorre la lista de los art?culos pero cuando lo integro es cuando se queda buscando
// esta consulta la ejecuto aparte introduciendo valores fijos y si da el resultado pero al integrarla no

sc_lookup(dsventa, "SELECT sum(cantidad) as cantidad_vendida
FROM venta_detalle
WHERE (fecha BETWEEN “$fecha1” AND “$fecha2”) and codigo_producto = “$codigo” " );

$articulos_vendidos = {dsventa[0][0]};

echo “No. “. $x .” codigo " . $codigo .” - ".$articulos_vendidos ;
echo “<br>”;

$x++;
}

Yo creo que puedes hacer una consulta mas rapida: EsteSQL te muestra los 20 mas vendidos.
SELECT codigo_producto, sum(cantidad) as cantidad_vendida
FROM venta_detalle
GROUP BY codigo_producto
WHERE (fecha BETWEEN “$fecha1” AND “$fecha2”)
ORDER BY 2 DESC
LIMIT 20

Gracias por responder
Es posible saber la cantidad de registros que contiene el select en la consulta, para recorrerlo todo y no delimitarlo a ?N? cantidad de registros.

Este Select lo puede hacer:
SELECT codigo_producto, sum(cantidad) as cantidad_vendida, Count(*) cantidad_registros
FROM venta_detalle
GROUP BY codigo_producto
WHERE (fecha BETWEEN “$fecha1” AND “$fecha2”)
ORDER BY 2 DESC

gracias alvagar si funciono

:wink: Ok, me alegro que haya funcionado bien.