Foros del Web » Programando para Internet » PHP »

Uso del "IF" en con la hora vacía 00:00:00

Estas en el tema de Uso del "IF" en con la hora vacía 00:00:00 en el foro de PHP en Foros del Web. Hola.! Amigos del foro. Que me recomiendan para dar solución: Students : 1.- Si un Students tiene registrado por defecto la hora "00:00:00" se le ...
  #1 (permalink)  
Antiguo 02/08/2023, 22:47
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Mensaje Uso del "IF" en con la hora vacía 00:00:00

Hola.! Amigos del foro.

Que me recomiendan para dar solución:

Students:
1.- Si un Students tiene registrado por defecto la hora "00:00:00" se le mostrara un Botón para editar.

Para eso uso de este modo.
if ($row['hour'] == '00:00:00');

2.- Si el Students edito la hora ejemplo. "13:30:05" ya no debe mostrar el botón de editar.

Una hora al azar del DB.
if ($row['hour'] == '13:30:05');

NOTA: Si uso de este modo aun me sigue mostrando el botón
if ($row['hour'] == '');

Resumen: La idea es que el botón se visualice, cuando la hora este en "00:00:00" y cuando tenga cualquiera hora que no sea ceros desaparezca.

Código PHP:
Ver original
  1. <?php
  2. // <-- more code...
  3. foreach($result as $row)
  4. {  
  5.     $sub_array = array();  
  6.     $sub_array[] = $row["id_grades"];  
  7.     $sub_array[] = '<div> '.$row["names"].' </div>';
  8.     $sub_array[] = '<div> '.$row["hour"].'  </div>';
  9.   $sub_array[] = '<div> '.$row["score"].' </div>';
  10.     // Teacher
  11.     if($_SESSION['level'] == '1' ) {
  12.     $sub_array[] = '<div>
  13.     <button type="button" name="delete" id="'.$row["id_grades"].'">Delete</button></div>';
  14.     }
  15.     // Students
  16.     else if($_SESSION['level'] == '2') {
  17.     if ($row['hour'] == '00:00:00');
  18.     $sub_array[] = '<div>
  19.     <button type="button" name="edit" id="'.$row["id_grades"].'">Edit</button></div>';
  20.     }      
  21.     $data[] = $sub_array;
  22. }
  23. // ...more code ->
  24. ?>
  #2 (permalink)  
Antiguo 10/08/2023, 10:37
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Uso del "IF" en con la hora vacía 00:00:00

No veo errores en tu código, estas recargando la pagina para refrescar los resultados?
__________________
la la la
  #3 (permalink)  
Antiguo 06/11/2023, 07:10
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Uso del "IF" en con la hora vacía 00:00:00

SI sacas la hora de la base de datos, generalmente un campo formato hora no admite vacios. Por defecto te lo pondra en "00:00:00".

Entonces, vos envias el formulario vacio a la base de datos, esta lo guarda como "00:00:00", despues, cuando lo recuperas, ya no esta vacio, sino que tiene el valor "00:00:00".

Entonces $row["hour"], nunca sera vacio, a lo sumo "00:00:00".
  #4 (permalink)  
Antiguo 09/11/2023, 06:28
Avatar de vb2005  
Fecha de Ingreso: noviembre-2005
Ubicación: Paderborn - Alemania
Mensajes: 566
Antigüedad: 18 años, 5 meses
Puntos: 24
Respuesta: Uso del "IF" en con la hora vacía 00:00:00

El Problema está con como está formateado el IF, asi como lo tienes no tiene ningun efecto ya que el if si entra pero dentro del bloque de ejecucción no hay nada, cambia tu código por esto:

Código PHP:
<?php
// <-- more code...
foreach ($result as $row) {
  
$sub_array = [];
  
$sub_array[] = $row["id_grades"];
  
$sub_array[] = "<div> " $row["names"] . " </div>";
  
$sub_array[] = "<div> " $row["hour"] . "  </div>";
  
$sub_array[] = "<div> " $row["score"] . " </div>";
  
// Teacher
  
if ($_SESSION["level"] == "1") {
    
$sub_array[] =
      
'<div>
        <button type="button" name="delete" id="' 
.
      
$row["id_grades"] .
      
'">Delete</button></div>';
  }
  
// Students
  
elseif ($_SESSION["level"] == "2") {
    if (
$row["hour"] == "00:00:00") {
      
$sub_array[] =
        
'<div>
        <button type="button" name="edit" id="' 
.
        
$row["id_grades"] .
        
'">Edit</button></div>';
    }
  }
  
$data[] = $sub_array;
}
// ...more code ->
    
?>

De todas formas aunque no conozco del todo la lógica requerida, me parece que comparar con la hora 00:00:00 para mostrar un botón no es una buena opción.

Para ponerte un ejemplo, si un usuario edita la fila a exactamente 00:00:00 el siempre podrá seguir editando.
__________________
www.marcher.com.uy - Web personal
Nerd's Corner - Desarrollo de software a medida
  #5 (permalink)  
Antiguo 09/11/2023, 06:29
Avatar de vb2005  
Fecha de Ingreso: noviembre-2005
Ubicación: Paderborn - Alemania
Mensajes: 566
Antigüedad: 18 años, 5 meses
Puntos: 24
Respuesta: Uso del "IF" en con la hora vacía 00:00:00

Error, el mensaje se envió 2 veces
__________________
www.marcher.com.uy - Web personal
Nerd's Corner - Desarrollo de software a medida

Última edición por vb2005; 09/11/2023 a las 06:30 Razón: Error



La zona horaria es GMT -6. Ahora son las 14:38.