Foros del Web » Programando para Internet » PHP »

Duda Foreach

Estas en el tema de Duda Foreach en el foro de PHP en Foros del Web. Hola a todos, Hice un script sencillo para videos, y quiero que cuando meta nuevos videos se imprima debajo en rojo NUEVO!! Tengo un foreach ...
  #1 (permalink)  
Antiguo 24/10/2010, 20:56
 
Fecha de Ingreso: octubre-2010
Ubicación: /home
Mensajes: 32
Antigüedad: 13 años, 6 meses
Puntos: 1
Duda Foreach

Hola a todos,

Hice un script sencillo para videos, y quiero que cuando meta nuevos videos se imprima debajo en rojo NUEVO!!

Tengo un foreach y muestra 14 videos, intente hacerlo por fecha poniendo un IF, comparando la fecha del sistema con la fecha de inserción del video. Pero cuando pasen las 12 de la noches y cambie el dia estará hasta el dia siguiente sin el NUEVO!!

Alguna idea?

Se puede por ejemplo meter un While dentro del foreach, y que salgan siempre los 5 ultimos videos esten los dias que esten con el NUEVO!! puesto?

Que opinais?

Un saludo y gracias!

Toux
  #2 (permalink)  
Antiguo 24/10/2010, 21:32
 
Fecha de Ingreso: mayo-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 3
Respuesta: Duda Foreach

Para lo del NUEVO podes hacer lo siguiente:


En el php donde guarda los videos en la base de datos poner lo siguiente:


Código PHP:
    $horas 60;  //cantidad de horas que aparecera el NUEVO en este caso 1 hora
    
$tiemposerv time();
    
$nuevo $tiemposerv $horas;

    
$query1 "INSERT INTO $table (`nuevo`) VALUES
    ('$nuevo');"
;

    
mysql_query($query1);
    
mysql_close(); 


Y en el php que muestra el video:

Código PHP:

   
   $result 
mysql_query("select * from $table"$conexion);

   while (
$row mysql_fetch_assoc($result)){
 
   
$nuevo $row["nuevo"];
   }

   
$hoy time();
   
$faltante_segundos $dia_registro-$hoy;
   
$faltante_horas ceil(abs($faltante_segundos/60));

   if(
$nuevo "0"){
   }else{ 
   echo 
'<font color="red">NUEVO</font>';
   } 

Es lo unico que se me ocurrio, ademas de que no se mucho PHP, espero te de una idea...

Última edición por Grox; 24/10/2010 a las 21:38
  #3 (permalink)  
Antiguo 25/10/2010, 09:39
 
Fecha de Ingreso: octubre-2010
Ubicación: /home
Mensajes: 32
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Duda Foreach

Hola Grox

Muchísimas gracias, la verdad no se me habia ocurrido esa posibilidad, voy a ver si puedo adaptarlo al script.

Un saludo!
  #4 (permalink)  
Antiguo 25/10/2010, 10:07
 
Fecha de Ingreso: mayo-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 3
Respuesta: Duda Foreach

Cambiale el $dia_registro, por $nuevo, me equivoque al cambiarlo.
  #5 (permalink)  
Antiguo 25/10/2010, 14:16
 
Fecha de Ingreso: octubre-2010
Ubicación: /home
Mensajes: 32
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Duda Foreach

Hola Grox,

De nuevo muchas gracias estoy haciendo pruebas, pero lo que aun no entiendo es como se cuentan las horas con respecto a la hora del servidor.

El campo de Nuevo como lo hago (INT)?

Un saludo!
  #6 (permalink)  
Antiguo 26/10/2010, 11:32
 
Fecha de Ingreso: mayo-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 3
Respuesta: Duda Foreach

Hace lo siguiente mira bien...

Registra los segundos del servidor imaginate que es...


200000

y uno le agrega 60 minutos... 1 x 3600 segundos (arriba puse 3600 me equivoque)


Quedaria asi:

203600


Entonces cuando la tiempo servidor tenga menos de 203600 segundos dira nuevo, cuando llegue o pase 203600 segundos, sacara el nuevo...




Creas un Campo llamado Nuevo,

Código PHP:
$horas 600;  // cantidad de horas que aparecera el NUEVO en este caso 1 hora
    
$tiemposerv time();  // tomamos el tiempo del servidor
    
$nuevo $tiemposerv $horas;  // le agregamos tiempo

    
$query1 "INSERT INTO $table (`nuevo`) VALUES
    ('$nuevo');"
;

    
mysql_query($query1);
    
mysql_close(); 


Y luego en el video agregas:


Código PHP:
   $result mysql_query("select * from $table"$conexion);

   while (
$row mysql_fetch_assoc($result)){
 
   
$nuevo $row["nuevo"];
   }

   
$hoy time();
   
$faltante_segundos $nuevo-$hoy;
   
$faltante_horas ceil(abs($faltante_segundos/3600));

   if(
$nuevo "0"){
   }else{ 
   echo 
'<font color="red">NUEVO</font>';
   } 
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 06:19.