Condición con now() en PHP
2 seguidores
Buenos días a todos, tengo una duda con una consulta en la que quiero que me muestre unos registros con la condición de que la fecha de estos sea posterior al día actual,y caso de que no exista muestre un mensaje.
El código que tengo es el siguiente:
if(&row_ultimos_eventos['fecha'] > now());
else echo('No hay fiestas programadas');
pero no me funciona.la verdad es que soy un poco nuevo en php, a ver si alguien me puede echar un cable.
gracias!
dagi3d
estás confundiendo varias cosas y entre ellas es que la función NOW() es propia de mysql y luego, que la condición de búsqueda la deberías hacer en el propio query y no a posteriori con php:
<code>
$result = mysql_query("SELECT * FROM tabla WHERE fecha > NOW()");
...
</code>
the_wound
Ok me va quedando más claro, pero lo que yo quiero es que si no hay ningun evento me saque un mensaje que sea 'No hay ningun evento', ¿esto lo hago comparando $row_lista_eventos = 0 ?
Otra cuestión, como puedo postear el codigo?es que intento ponerlo pero me salen las etiquetas solo aún poniendolo dentro de la etiqueta code
dagi3d
parece que el foro falla al tratar de meter ciertas etiquetas, así que hay que apañárselas como uno pueda :P
para saber si hay eventos o no, puedes usar la función mysql_num_rows, que te indica el número de filas devueltas:
<code>
$result = mysql_query("SELECT * FROM tabla WHERE fecha > NOW()");
$total = mysql_num_rows($result);
if ($total == 0) {
// no hay resultados
} else {
...
}
</code>
the_wound
Vale así si que funciona, ahora tengo un problemilla con la condicion
<code> if ($total != 0)
do {
echo FechaESP($row_lista_eventos['fecha']);
echo $row_lista_eventos['ciudad'];
echo $row_lista_eventos['lugar'];
while ($row_lista_eventos = mysql_fetch_assoc($lista_eventos));
} else { do {
echo 'No hay fiestas programadas';
} </code>
No funciona, supongo que será por que falte alguna llave de cierre(he quitado las etiquetas php).
dagi3d
prueba así:
<code>
if ($total > 0) {
while ($row_lista_eventos = mysql_fetch_assoc($lista_eventos)) {
echo FechaESP($row_lista_eventos['fecha']);
echo $row_lista_eventos['ciudad'];
echo $row_lista_eventos['lugar'];
}
} else {
echo 'No hay fiestas programadas';
}
</code>
the_wound
así no saca los resultados cuando hay $total >0, de la otra forma me funcionaba pero solo sacaba el primero, como podría solucionarlo?
Gracias
the_wound
ya esta arreglado, gracias por todo