A ver, según tu código inicial:
Código PHP:
Ver original// Estás definiendo $error incluso antes de leer la consulta
$error='<h8>¡Cantidad en stock superada!</h8>';
$consulta=mysql_query("select * from productos WHERE id='$id'"); {
$stock=$filas['cuanto_hay'];
// Luego, en la consulta revisas cantidad, si supera el stock
// muestras el mensaje de error que definiste arriba
// Si no, haces "nada" con un espacio codificado en HTML
if ($stock<$can) echo $error;
else ' ';
}
}
// Siempre va a entrar a este if, porque $error está definido
{
{
// Aquí comparas nuevamente stock vs can
// Y resulta que los valores son los de la última iteración del while
if ($stock<$can) //AQUI ES EL ERROR, ME CUMPLE LA CONDICION PERO SOLO SI ES EN EL ULTIMO PRODUCTO DE LA LISTA.