Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/09/2004, 18:34
HiperJP
 
Fecha de Ingreso: enero-2004
Ubicación: Santiago
Mensajes: 127
Antigüedad: 20 años, 3 meses
Puntos: 0
Algunos detalles...

Aquí esta la versión opimizada

Código PHP:
$n $row['nivel']; 
switch (
$n) {
 case (
$n && $n <= 50):
  echo 
"<b>Miembro Novato</b>"; break;
 case (
$n 50 && $n <= 200):
  echo 
"<b>Miembro Junior</b>"; break;
 case (
$n 200 && $n <= 300):
  echo 
"<b>Miembro Avanzado</b>";  break;
 case (
$n 300 && $n <= 500):
  echo 
"<b>Miembro Senior</b>"; break;
 case (
$n 500):
  echo 
"<b>Miembro Dios!</b>"; break;

En tu código colocas:
if ($n>0 && $n<50){
echo "<b>Miembro Novato</b>";
}
if ($n>50 && $n<200){
echo "<b>Miembro Junior</b>";
}
...

Pero si te fijas bien, dónde he marcado los operadores estan los errores, ya que si el usuario tiene 50 post no le dirá nada , según éste rango de ejemplo, cuando es mayor a 0 pero MENOR a 50 le mostrará "Miembro Novato" y cuando sea MAYOR a 50 pero MENOR a 200 le mostrará "Miembro Junior"... no se esta considerando cuando es "igual a", por eso te lo he corregido, los fallos estaban en:

< 50
< 200
< 300
< 500

y yo los he reemplazado a:
<= 50
<= 200
<= 300
<= 500

De esta manera serán tambien considerados estos números que estaban en el "aire" y nunca le hubiera sido mostrado el estado al usuario en esos casos.

Además, en este tipo de casos es mejor utilizar la sentencia switch, en vez de varios if.

Saludos.