Foros del Web » Programando para Internet » PHP »

Calendario de News

Estas en el tema de Calendario de News en el foro de PHP en Foros del Web. Buenas Quiero mostrar en un calendario mis noticias enviadas, tengo este codigo: Código: <? if (isset($_GET['monthno'])) $monthno = $_GET['monthno']; if (isset($_GET['year'])) $year = $_GET['year']; if ...
  #1 (permalink)  
Antiguo 14/03/2005, 10:52
 
Fecha de Ingreso: abril-2004
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 0
Calendario de News

Buenas

Quiero mostrar en un calendario mis noticias enviadas, tengo este codigo:

Código:
<?

if (isset($_GET['monthno'])) $monthno = $_GET['monthno'];
if (isset($_GET['year'])) $year = $_GET['year'];
if (!isset($monthno)) {
    $monthno=date(n);
}
if (!isset($year)) {
    $year = date(Y);
}

$monthfulltext = date(F, mktime(0, 0, 0, $monthno, 1, $year));
$monthshorttext = date(M, mktime(0, 0, 0, $monthno, 1, $year));

$day_in_mth = date(t, mktime(0, 0, 0, $monthno, 1, $year)) ;
$day_text = date(D, mktime(0, 0, 0, $monthno, 1, $year));


?>

<table class=caltable bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="1" width=97%>
<tr><td colspan=7 class=tdheading><? echo $monthfulltext." ".$year ?></td></tr>
<tr>
<td class=tdday>Sun</td><td class=tdday>Mon</td><td class=tdday>Tue</td><td class=tdday>Wed</td><td class=tdday>Thu</td><td class=tdday>Fri</td>
<td class=tdday>Sat</td>
</tr>
<tr>
<?

$day_of_wk = date(w, mktime(0, 0, 0, $monthno, 1, $year));

if ($day_of_wk <> 0){
   for ($i=0; $i<$day_of_wk; $i++)
   { echo "<td class=tddate>&nbsp;</td>"; }
}

for ($date_of_mth = 1; $date_of_mth <= $day_in_mth; $date_of_mth++) {

    if ($day_of_wk = 0){
   for ($i=0; $i<$day_of_wk; $i++);
   { echo "<tr>"; }
}
    $day_text = date(D, mktime(0, 0, 0, $monthno, $date_of_mth, $year));
    $date_no = date(j, mktime(0, 0, 0, $monthno, $date_of_mth, $year));
    $day_of_wk = date(w, mktime(0, 0, 0, $monthno, $date_of_mth, $year));
	
		
  if ( $date_no ==  date(j) &&  $monthno == date(n) &&  $year == date(Y))
  
     {  echo "<td class=tdtoday><b>".$date_no."<b></td>"; }
   else{   
   echo "<td class=tddate>".$date_no."</td>";  }
   If ( $day_of_wk == 6 ) {  echo "</tr>"; }
   If ( $day_of_wk < 6 && $date_of_mth == $day_in_mth ) {
   for ( $i = $day_of_wk ; $i < 6; $i++ ) {
     echo "<td class=tddate>&nbsp;</td>"; }
      echo "</tr>";
      }
	  }
?>
</table>
de la forma como lo intente usando el

Código:
if ( $date_no ==  date(j) &&  $monthno == date(n) &&  $year == date(Y))
solo muestro puedo mostrar la ultima noticia.

¿como seria?
__________________
Home Page | SoloMSN
La base del optimismo es evitar el terror.
- Oscar Wilde
  #2 (permalink)  
Antiguo 14/03/2005, 21:46
Avatar de Keitaro  
Fecha de Ingreso: marzo-2005
Ubicación: Mi Casa
Mensajes: 33
Antigüedad: 12 años, 9 meses
Puntos: 0
Exclamación

yo creo que debes poner esas consultas dentro de un ciclo while...

acuerdate que un while se ejecuta hasta cuando sea falsa la condición...

P/E: Tres noticias, debemos hacer este ciclo tres veces, entonces...

Código PHP:
while($date_no ==  date(j) &&  $monthno == date(n) &&  $year == date(Y))
{
  
// mucho código

Si no se cumple por ejemplo que la fecha sea == a la de hoy o el mes o el año, entonces el ciclo falla. Sino, continua hasta que falle...

Espero que te sirva de algo la respuesta, aunque te faltó decir si las noticias venían de una BD o un texto o etc...

Sayonara
  #3 (permalink)  
Antiguo 16/03/2005, 09:08
 
Fecha de Ingreso: abril-2004
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 0
hola,

lo raro es que se ejecuta el if y tb el else

Código PHP:
 if ( $date_no ==  $dia &&  $monthno == $mes &&  $year == $ano)
     {  echo 
"<td class=tdtoday><b>".$date_no."<b></td>"; }
   else{   
   echo 
"<td class=tddate>".$date_no."</td>";  }
   If ( 
$day_of_wk == ) {  echo "</tr>"; }
   If ( 
$day_of_wk && $date_of_mth == $day_in_mth ) {
   for ( 
$i $day_of_wk $i 6$i++ ) {
     echo 
"<td class=tddate>&nbsp;</td>"; }
      echo 
"</tr>";
      }
      } 
porque cuando comento el else ya no se muestra el calendario.
entonces nose como sustituir el if con el while

P.D mis noticias estan en una DB.
__________________
Home Page | SoloMSN
La base del optimismo es evitar el terror.
- Oscar Wilde
  #4 (permalink)  
Antiguo 16/03/2005, 21:49
Avatar de Keitaro  
Fecha de Ingreso: marzo-2005
Ubicación: Mi Casa
Mensajes: 33
Antigüedad: 12 años, 9 meses
Puntos: 0
Exclamación

Veamos...

Si colocas la condicional del if como ciclo en el while, es decir...

if( {condicion} )
{
//bloque
}

es lo mismo que decir

while ({condicion} )
{
// bloque
}

la diferencia es que lo que está en bloque será ejecutado x veces hasta que {condición} sea falsa

Por eso...

while ( {¿estoy en la fecha de hoy?} )
{
//muestro lo que corresponde a hoy
}
// ahora muestro lo que no corresponde a hoy...

Eso es todo lo que más te ayudaré... igual si tienes duda, [email protected] (MSN)...

Sayonara
__________________
:si: :si: :si: Sólo sé que nada sé... :si: :si: :si:

Santiago de Chile
  #5 (permalink)  
Antiguo 17/03/2005, 10:47
 
Fecha de Ingreso: abril-2004
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 0
hola , muchas gracias por la respuesta.

ahora mismo lo intentaré, hasta conseguirlo ....

te agregaré al MSN

Gracias ...!
__________________
Home Page | SoloMSN
La base del optimismo es evitar el terror.
- Oscar Wilde
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 12:24.