En todos los códigos que muestras núnca has mencionado cuál es el verdadero valor
de la variable a comparar ($i), no daz argumenteos para poder ayudarte: ¿por qué no funciona?; ¿qué debería salir en lugar de lo que muestra?
Lo que dice
Seppo es simplemente que imprimas esa variable y compruebes que realmente ha saltado/tomado determinado valor:
Código PHP:
$id= 2;
echo "El valor que \$id TIENE que ser $id<br>"; // Confirmas y comparas con el resultado
switch($id) {
case 0:
echo "id vale 0";
break;
case 1:
echo "id vale 1";
break;
case 2:
echo "id vale 2";
break;
default:
echo "id vale 'default'";
}
Maneja los "echo" para que tú mismo busques por dónde puede estar el error...