Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/03/2010, 07:23
aerial
 
Fecha de Ingreso: febrero-2010
Mensajes: 7
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problemas con div

Se sale del div por ejemplo cuando una misma semana tiene eventos, en caso de que no haya ningun evento no se sale. Lo he probado en una pagian sola y no da ningun problema. Te pongo el codigo del calendario:

<?php
$hostname_BD = "localhost";
$database_BD = "mitabla";
$username_BD = "root";
$password_BD = "root";
$BD = mysql_pconnect($hostname_BD, $username_BD, $password_BD) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_BD, $BD);
setlocale(LC_ALL, 'sp'); // Codificacion Local
$sel_date = isset($_REQUEST['ladata']) ? $_REQUEST['ladata'] : time();
$dias = date('t', $sel_date); // Dias que tiene el mes
$hoy = date('j', $sel_date); // Hoy (numerico) Si es 'j' → 1-31 si es 'd' → 01-31
$mes = date('m', $sel_date); // Mes actual (numerico) 'n' → 1-12 si es 'm' → 01-12
$anio = date('Y', $sel_date); // Año actual Si es 'Y' → 2007 si es 'y' → 07
$nomMes = strftime('%B', $sel_date); // El nombre del mes, en la codificacion local elejida
$t = getdate($sel_date);
$proximMes = mktime($t['hours'], $t['minutes'], $t['seconds'], $mes + 1, $t['mday'], $anio); // Mes siguiente
$anteriorMes = mktime($t['hours'], $t['minutes'], $t['seconds'], $mes - 1, $t['mday'], $anio); // Mes anterior
// Dia de la semana en que cae el dia 1 del mes actual
if (($diaset = date('w', mktime(0, 0, 0, date('m', $sel_date), 1, date('y', $sel_date)))) == 0) $diaset = 7;;
$start = false;
$sum = 0;
// Consultamos todos los registros que hay en la base de datos, de este año y este mes
$consulta = "SELECT fecha FROM agenda WHERE fecha LIKE '$anio-%' AND fecha LIKE '%-$mes-%'";
$resp = mysql_query($consulta);
$array_dias = array();
while ($dades=mysql_fetch_array($resp)) {
$unarray = explode('-', $dades['fecha']);
$diasEvent = $unarray[2];
$array_dias[] = $diasEvent;
}
echo '
<table cellpadding="0" cellspacing="0" id="calendario" align="center">
<thead><th colspan="7"> <a href="?ladata='.$anteriorMes.'" title="mes anterior">&laquo;
&laquo;
</a> '.utf8_encode($nomMes).' '.$anio.' <a href="?ladata='.$proximMes.'" title="proximo mes">&raquo;
&raquo;
</a></th></thead>
<tbody>
' ;
echo '<tr>
<th>L</th><th>M</th><th>M</th><th>J</th><th>V</th><th>S</th><th>D</th>
</tr><tr>';

for ($i = 1; $i <= ($dias + $sum); $i++) {
// Dias de otro mes, no mostraremos nada
if (!$start) if ($i <= 7 && $i == $diaset) { $start = true; $sum = $i - 1; } else { echo '<td class="inactivo"></td>'; }

if ($start) {
if (($i - 1) % 7 == 0) echo '</tr><tr>';
if ($i == ($hoy + $sum) && ($mes == date('m')) && ($anio == date('Y')) ) {
$complet = $anio.'-'.$mes.'-'.($i - $sum ); // Fecha completa formato 2007-12-31
// Hoy
echo '
<td class="hoy">';
$consulta = "SELECT acto,fecha FROM agenda WHERE fecha='$complet' ORDER BY acto";
$resp = mysql_query($consulta);
if ($dades=mysql_fetch_array($resp)) {
echo '<p><a title="Ver evento" href="veragenda.php?fecha=' . $dades['fecha'] . '"class="aCal">' . ($i - $sum ). '</a></p>';
}else{
echo $hoy;
}
echo '</td>';
} elseif (in_array($i-$sum, $array_dias)) {
$complet = $anio.'-'.$mes.'-'.($i - $sum );
// Dia que hay algun evento
echo '<td class="evento">';
$consulta = "SELECT acto,fecha FROM agenda WHERE fecha='$complet' ORDER BY acto";
$resp = mysql_query($consulta);
if ($dades=mysql_fetch_array($resp)) {
echo '<p><a title="ver evento" href="veragenda.php?fecha=' . $dades['fecha'] . '"class="aCal">' . ($i - $sum ). '</a></p>';
}
echo '</td>';
} else {
// Dia que no hay nada
echo '
<td>
' . ($i - $sum ) .'
</td>';
}
}
}
echo '
</tr></table>
';
?>