Foros del Web » Programando para Internet » PHP »

Problemas con sentencia IF

Estas en el tema de Problemas con sentencia IF en el foro de PHP en Foros del Web. HoLa amigos, bueno el problema inicial es que tenia un sistema que captura calificaciones, el formulario es completamente dinamico, ya que nunca sera la misma ...
  #1 (permalink)  
Antiguo 08/09/2006, 09:22
 
Fecha de Ingreso: mayo-2005
Ubicación: Cancun
Mensajes: 35
Antigüedad: 18 años, 11 meses
Puntos: 0
Exclamación Problemas con sentencia IF

HoLa amigos, bueno el problema inicial es que tenia un sistema que captura calificaciones, el formulario es completamente dinamico, ya que nunca sera la misma cantidad de alumnos.

Bueno el chiste es que tengo que validar las calificaciones que meten los maestros, por ejemplo, validar que no deje campos en blanco y validar que no ponga valores mayores a 10, bueno, despues de tanto pelear descubri que es solo cuestion de utilizar un IF. Les pongo el codigo del script que toma los valores capturados, los verifica y si cumplen los guarda

:::::::::::::Codigo PHP ::::::::::::::::::::::::

<?
$idmaes=$_GET['ma'];
$cvemat=$_GET['cm'];

include("db_access/included.php");
$link=Conectarse();

for ($x=0; $x < count($HTTP_POST_VARS['ids']) ; $x++)
{
$id = $HTTP_POST_VARS['ids'][$x];
$cali = $HTTP_POST_VARS['calificaciones'][$x];
$faltas =$HTTP_POST_VARS['faltas'][$x];
$faltas_justi =$HTTP_POST_VARS['faltas_justificadas'][$x];
$faltas_to = $faltas - $faltas_justi;

if ($cali = "")
{
echo ("alto");
}
else
{
if ($cali <=10 )
{
///:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::.


$sql="UPDATE alumnos SET calificacion='$cali',faltas=$faltas,faltas_justi=$ faltas_justi,faltas_to=$faltas_to Where ID=$id";
mysql_query($sql,$link);
}
}
}
mysql_query($sql);
mysql_close();
?>
<?
echo ("<script LANGUAGE=\"JavaScript\">
var pagina=\"evaluado.php?mt=$idmaes&cm=$cvemat\"
function redireccionar()
{
location.href=pagina
}
setTimeout (\"redireccionar()\", 1);
</script>
")

?>

El problema es que aunque si los verifica de todos modos se pasa a la sigueinte oja, lo que yo necesito es que si encuentra que los campos estan vacios o que si el valor es mayor a DIez que se detenga y ponga un mensaje.

ESPERO ME PUEDAN AYUDAR POR QUE ESTE SISTEMA TIENE UN POCO CANSADA MI MENTE
  #2 (permalink)  
Antiguo 08/09/2006, 09:45
 
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 200
Antigüedad: 19 años, 11 meses
Puntos: 0
Lo que podrias hacer es

Código PHP:
$cali trim($cali); // trim para evitar que pongan espacios
if(empty($cali) || strlen($cali) <= 10)
{
    echo 
"Error";
    exit();
}

// de aqui en adelante el SQL 
Funciones utilizadas:

trim -- Elimina espacios en blanco (u otros caracteres) del principio y final de una cadena
empty -- Determinar si una variable está vacía
strlen -- Obtiene la longitud de la cadena
exit -- Detener el script


Salud2
  #3 (permalink)  
Antiguo 08/09/2006, 10:45
 
Fecha de Ingreso: mayo-2005
Ubicación: Cancun
Mensajes: 35
Antigüedad: 18 años, 11 meses
Puntos: 0
De acuerdo Mil Gracias

En verdad MIL Gracias, por tu ayuda, me has quitado un peso de encima.
  #4 (permalink)  
Antiguo 08/09/2006, 11:44
 
Fecha de Ingreso: mayo-2005
Ubicación: Cancun
Mensajes: 35
Antigüedad: 18 años, 11 meses
Puntos: 0
Problema

hay veces que el codigo hacela validacion correcta. Pero ya capture las calificaciones de 9 a 8 y me marca error. Y no entiendo por que en ocasiones si funiona y porque en ocasiones no funciona.

no entiendo
  #5 (permalink)  
Antiguo 12/09/2006, 01:23
 
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 200
Antigüedad: 19 años, 11 meses
Puntos: 0
No me habia dado cuenta, pero hay un pequeño error

te he puesto strlen($cali) <= 10
y claro estamos comparando la longitud NO el valor de la cadena

entonces seria como lo tenias antes, pero comprobando que sea mayor de 10,
si es mayor entra en ERROR;

$cali > 10

Salud2
  #6 (permalink)  
Antiguo 12/09/2006, 02:17
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1
Antigüedad: 17 años, 7 meses
Puntos: 0
El problema de los IF es que no estabas comparando, estabas asignado un valor, para comparar cadenas, se utiliza el ==.

if($variable1=="")
{

}


Si haces
if($variable1="")
{

}
lo que hace es asignarle el valor "" a "variable1


Espero que te sirva de ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:36.