Comparar fechas

Necesito una ayudita. Sucede que necesito comparar dos fechas. Una se encuentra en la bd y otra es la fecha actual y cuando la de la bd sea menor que la fecha actual o la del servidor salga un mensaje que se venció el plazo.
Yo tengo el siguiente script pero no funciona:
$resultado= mysql_query
("SELECT * FROM fechalim",$link);
$fecha_insc= date("Y-n-j");
while ($registro = mysql_fetch_row($resultado)){
foreach($registro as $clave2){
$limite=$clave2;
}
}
if ('$fecha_insc'>='$limite')
{
echo "se puede inscribir";
}
else
{
//Inscripcion de Proyectos fuera de la fecha
echo "<p align='center'><b><font face='Verdana' color='#000080' size='2'>
<a href='cestudiante.php'>NO SE PUEDE REALIZAR LA INSCRIPCION YA QUE SE
ENCUENTRA FUERA DEL PLAZO DE INSCRIPCION</a></b></p></font>";
}

2 respuestas

Respuesta
1
Por lo que veo en tu código compruebas varias fechas y no solo dos. En la base de datos tienes varias fechas, porque si solo tienes una no necesitas usar while. Aun así no entiendo porque haces foreach. Aclárame cuales son los campos de la base de datos.
Si lo que quieres es comparar una única fecha que esta en la base de datos, necesitas hacer un SELECT que solo te devuelva esa fecha, tienes que incluir WHERE en algún sitio y en vez de usar * tienes que poner el nombre del campo con la fecha. ¿O en la base de datos lo único que tienes es un campo y un registro con la fecha límite de inscripción? No tiene mucho sentido, para eso usa una variable y ganas en velocidad.
Voy a suponer que en la tabla fechalim de la base de datos guardas la fecha límite de inscripción llamada fecha_lim, la fecha de comienzo, y el año o proyecto o lo que sea. Puedes almacenar los datos relacionados con la inscripción que te sean de interés.
El código que tendrías que usar sería algo parecido a lo siguiente:
$anioActual = date("Y"); // aqui seria el año, proyecto o otro campo
$resultado= mysql_query
("SELECT fecha_lim FROM fechalim WHERE anio=$anioActual",$link);
$fecha_insc= date("Y-n-j");
$limite = mysql_result($resultado, 0, 0);
if ($fecha_insc >= $limite)
{
echo "se puede inscribir";
}
else
{
//Inscripcion de Proyectos fuera de la fecha
echo "<p align='center'><b><font face='Verdana' color='#000080' size='2'>
<a href='cestudiante.php'>NO SE PUEDE REALIZAR LA INSCRIPCION YA QUE SE
ENCUENTRA FUERA DEL PLAZO DE INSCRIPCION</a></b></p></font>";
}
La comparación de fechas sin las comillas. Y esto es todo. Pruébalo con tu código, y si no es lo que necesitas, aclárame los campos que tienes en la base de datos.
Respuesta
1
Has probado de quitarle las comitas a '$fecha_insc'>='$limite' ??
Estás haciendo así una comparación entre cadenas de texto, si le quitas las comitas quedará una comparación entre fechas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas