Fijate:
Código PHP:
$numero_productos = 0;
$total = 0;
while ($fila = mysql_fetch_row($cursor))
if (esta_en_array($carrito, $fila[0]))
{
$numero_productos++;
$total = $total + $fila[3];
echo "<tr><td class='tex2'>$numero_productos</td>";
echo "<td class='tex2'>$fila[1]</td><td align='right' class='tex2'>\n" .
"$fila[3] Bs</td></tr>\n";
}
if ($total == 0) // <--- OJO aquí
die("No ha escogido ningun articulo");
else
usas un $total .. que "acomulas el valor" de no sé que campo de tu BD .. Pero también usas: $numero_productos que supongo que esa es la que deberías comparar en tu condicional if() que haces ahí.
PD: Tu funcion "esta_en_array()" ya la implementa PHP en: in_array()
Un saludo,