Foros del Web » Programando para Internet » PHP »

Sentencia IF con AND

Estas en el tema de Sentencia IF con AND en el foro de PHP en Foros del Web. Buenas, gente. Estoy haciendo un panel, y en este momento, estoy tratando de mostrar si el chat esta Online o Offline. Para eso hice una ...
  #1 (permalink)  
Antiguo 04/11/2006, 17:48
 
Fecha de Ingreso: abril-2006
Mensajes: 119
Antigüedad: 17 años, 11 meses
Puntos: 0
Sentencia IF con AND

Buenas, gente.

Estoy haciendo un panel, y en este momento, estoy tratando de mostrar si el chat esta Online o Offline.

Para eso hice una tablita, con campos

"Day" - dia
"start" - Hora de Comienzo
"end" - Hora de Finalizacion

Y meti algunos datos para probar. Ahora, el PHP:

Código PHP:
            $date=date("l");
    
$time=date("H:i:s");
    
$sql=mysql_fetch_array(mysql_query("SELECT start,end FROM woe_times WHERE day = ".$date." LIMIT 1"));
    if (
$time>$sql[start] && $sql[end]>$time){
    
$status='Online';$class='online';    }    else    {
    
$status='Offline';$class='offline';    }
    
    echo 
"<span class=".$class.">".$status."</span>"
Le pongo la ahora para que este Online, pero dice que esta Offline. Supongamos en la tabla pongo

Day: Saturday
start: 16:30
end: 17:30

Y supongamos que son las 16:45. El codigo me dice que esta Offline...


Por favor, si saben que hacer. Seria una gran ayuda.
  #2 (permalink)  
Antiguo 04/11/2006, 21:32
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 8 meses
Puntos: 6
Hola,

Mirando asi por arriba...

Código PHP:
<?
    $sql
=mysql_fetch_array(mysql_query("SELECT start,end FROM woe_times WHERE day = ".$date." LIMIT 1"));
?>
Utilizas 'day' para el WHERE, pero dicho campo no lo incluiste en el "SELECT start,end..." ... seria: "SELECT start,end,day..."

Por otro lado usas:

Código PHP:
<?
if ($time>$sql[start] && $sql[end]>$time){ 
?>
En tal caso seria:


Código PHP:
<?
if ($time>$sql["start"] && $sql["end"]>$time){ 
?>


Saludos
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #3 (permalink)  
Antiguo 05/11/2006, 04:09
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 7 meses
Puntos: 102
Cita:
Iniciado por maurozone Ver Mensaje
Por favor, si saben que hacer. Seria una gran ayuda.
Crea tus propias pruebas. Averigua dónde es que el falla el comportamiento, esto imprimiendo en lugares "estratégicos" los valores de las variables (por ejemplo).

De entrada no te fies de la comparación que haces directamente con fechas. Necesitas transformar esos datos de fecha/tiempos en valores numéricos (TIMESTAMP), utilizando funciones como mktime() y/o strtotime().

Pero lo mejor es que este tipo de operaciones las soluciones con SQL, directamente desde la Base de Datos que maneja de una mejor manera esta información de tiempos, aceptando comparaciones directas y contando con un buen surtido de funciones.

De entrada te evitas crear variables PHP en vano (que ocupas ahora), la recuperación de datos y la comparación. En defitiva es la mejor opción.

Cheka la documentación de MySQL y los artículos de mysql-hispano.org .


Fridureiks: Solo aclarar que lo primero que dices (la necesidad de "incluir" day) es erróneo. Puedes aplicar un filtro en atributos que no has de recuperar. Lo demás, tienes razón aunque no es el motivo del error.

Saluton
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 22:58.