mostrar un calendario simple en php

Tengo una tabla con fechas y días de la semana, por ejemplo: 2012-05-01, martes 2012-05-02, miércoles, etc.

Estoy tratando de mostrarlo en un calendario como una tabla. El problema es que para cada día lo muestra en una fila diferente.

$date4 = date("Y-m-d");
$date3 = date('Y-m-d',strtotime('-1 second',strtotime('+1 month',strtotime(date('m').'/01/'.date('Y').' 00:00:00'))));


    $sql3 = "SELECT * FROM trn_cal WHERE dat >= '$date4' AND dat <= '$date3'";
    $res3 = mysql_query($sql3);
    echo "<table width='700px' border='1'>";
    echo "  <tr>";
    echo "      <td width='100px'>Sunday</td>";
    echo "      <td width='100px'>Monday</td>";
    echo "      <td width='100px'>Tuesday</td>";
    echo "      <td width='100px'>Wednesday</td>";
    echo "      <td width='100px'>Thursday</td>";
    echo "      <td width='100px'>Friday</td>";
    echo "      <td width='100px'>Saturday</td>";
    echo "  </tr>";
    echo "</table>";

    echo "<table width='700px' border='1'>";
    while ($row3 = mysql_fetch_assoc($res3)) {
    $weekday = $row3['weekday'];
    $weekdate = $row3['weekdate'];
    echo "  <tr>";
    echo "      <td width='100px'>";
    if ($weekday == "Sunday") {
    echo $weekdate;
    }
    echo "</td>";
    echo "      <td width='100px'>";
    if ($weekday == "Monday") {
    echo $weekdate;
    }
    echo "</td>";
    echo "      <td width='100px'>";
    if ($weekday == "Tuesday") {
    echo $weekdate;
    }
    echo "</td>";
    echo "      <td width='100px'>";
    if ($weekday == "Wednesday") {
    echo $weekdate;
    }
    echo "</td>";
    echo "      <td width='100px'>";
    if ($weekday == "Thursday") {
    echo $weekdate;
    }
    echo "</td>";
    echo "      <td width='100px'>";
    if ($weekday == "Friday") {
    echo $weekdate;
    }
    echo "</td>";
    echo "      <td width='100px'>";
    if ($weekday == "Saturday") {
    echo $weekdate;
    } 
    echo "</td>";
    echo "  </tr>";
    }
    echo "</table>";

preguntado el 03 de mayo de 12 a las 15:05

Obtiene una fila diferente cada vez porque está llamando a echo " "; cada vez que pasa por su ciclo while. Probablemente solo quiera comenzar una nueva fila si está antes de un domingo -

@ioums, hola, gracias. Entiendo el problema, pero no puedo hacerlo funcionar.

1 Respuestas

Prueba esto:

$date4 = date("Y-m-d");
$date3 = date('Y-m-d',strtotime('-1 second',strtotime('+1 month',strtotime(date('m').'/01/'.date('Y').' 00:00:00'))));

$sql3 = "SELECT * FROM trn_cal WHERE dat >= '$date4' AND dat <= '$date3'";
$res3 = mysql_query($sql3);

echo "<table width='700px' border='1'>";

echo "  <tr>";
echo "      <td width='100px'>Sunday</td>";
echo "      <td width='100px'>Monday</td>";
echo "      <td width='100px'>Tuesday</td>";
echo "      <td width='100px'>Wednesday</td>";
echo "      <td width='100px'>Thursday</td>";
echo "      <td width='100px'>Friday</td>";
echo "      <td width='100px'>Saturday</td>";
echo "  </tr>";

echo "  <tr>";
$results_count = mysql_num_rows($res3);
$i = 1;
while ($row3 = mysql_fetch_assoc($res3)) {
    $weekday = $row3['weekday'];
    $weekdate = $row3['weekdate'];
    echo "      <td width='100px'>" . $weekdate . "</td>";
    if ($weekday == "Sunday") {
        echo "  </tr>";
        if($i < $results_count) echo "  <tr>";
    }
    $i++;
}

echo "</table>";

contestado el 03 de mayo de 12 a las 16:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.