No parece haber ningún problema (o por lo menos no lo encuentro) en el código con el cual recibís la variable, yo me inclinaría por buscar en el "envío" del dato.
Y, tal cual como dice Sergi, a menos que estés utilizando alguna función de Ajax que envíe la variable en forma automática en cuanto hagas la selección con el combo, te falta SÍ O SÍ el "submit".
Vamos al ejemplo:
Código HTML:
<!-- código para la página que envía el dato -->
<form action="carrito_compra.php" method="post">
<select name="select">
<option value="1">Hy</option>
<option value="2">Li</option>
<option value="3">C</option>
</select>
<input type="submit" name="Enviar la selección al carrito">
</form>
Y ahora:
Código PHP:
<!--código para la página que recibe el dato-->
<?php
$variable=$_POST['select'];
echo($variable); //en donde, según la selección, se debería mostrar "1", "2" ó "3"
?>
Esto NO PUEDE FALLAR.
Ja.
Saludos.