需要制作日历

时间:2012-05-18 23:18:21

标签: php foreach while-loop

当我们使用if语句时,我们的循环原因有问题,它只显示我们的一个标题而不是所有标题

这是我们的代码:

$sqldayshours = mysqli_query($link, "SELECT *  FROM event;") or die("Kon de comments niet ophalen");
$event_time = mysqli_fetch_assoc($sqldayshours);

$title =  $event_time['event_title'];
    $day = $event_time['event_date_day'];
    $uur = $event_time['event_date_hour'];
    $ide = $event_time['event_id'];
    $idsql="day".$day."uur".$uur;

for($rij=8;$rij<19;$rij++)
    {
        echo " < tr > ";
                    for($i=0;$i<8;$i++)
            {
                    $id = "day".$i."uur".$rij;
                    echo " < td id=\"$id\" name=\"$id\" class=\"events\">";
                    if($i==0){
              echo $rij.":00 ";
                  }else{ 
                                    if($idsql == $id ){ 
                                   echo $title; 
                               }
                }
        echo "< /td >";
                }`

        echo "< /tr >";

    }

3 个答案:

答案 0 :(得分:0)

不知道这是否是你想要的,但你可以使用以下内容循环所有结果:

<?php

   while($event_time = mysqli_fetch_array($sqldayshours) ) {

       echo $event_time['title']; // or whatever you need to do.

   }

   //or alternatively

   while($event_time = mysqli_fetch_array($sqldayshours) ) {

       $results[] = $event_time;

   }

    print_r($results);

这使您可以循环搜索结果并使用它们执行所需的操作。

第二个将结果推送到一个数组,然后你可以使用while循环之外的值或你想做的任何事情。

答案 1 :(得分:0)

<?php

    $sqldayshours = mysqli_query($link, "SELECT *  FROM event;") or die("Kon de comments niet ophalen");
   while($event_time = mysqli_fetch_array($sqldayshours) ) {
        for($rij=8;$rij<19;$rij++)
    {
        echo " < tr > ";
                    for($i=0;$i<8;$i++)
            {
                    $id = "day".$i."uur".$rij;
                    echo " < td id=\"$id\" name=\"$id\" class=\"events\">";
                    if($i==0){
              echo $rij.":00 ";
                  }else{ 
                                    if($idsql == $id ){ 
                                   echo $event_time['title']; 
                               }
                }
        echo "< /td >";
                }`

        echo "< /tr >";

    }
   }

?>

答案 2 :(得分:0)

<?php

$sqldayshours = mysqli_query($link, "SELECT *  FROM event;") or die("Kon de comments niet ophalen");

//loop all 18hours of one day
for($hour=8;$hour<19;$hour++)
{
    echo "<tr>";

    //loop all 7days
    for($day=0;$day<8;$day++)
    {
        //save the current time in the loop
        $current_time = "day".$day."uur".$hour;

        //loop all the events in the query and check for a valid one
        while($one_event = $sqldayshours->fetch_array())
        {
            $title = $one_event['event_title'];
            $day2= $one_event['event_date_day'];
            $hour2= $one_event['event_date_hour'];
            $id2 = $one_event['event_id'];
            $idsql = "day".$day2."uur".$hour2;

            echo "<td id='$current_time' name='$current_time' class='events'>";

            if($day == 0)
            {
                echo $hour.":00";
                echo "< /td >";
            }
            else if($current_time == $idsql)
            {
                echo $title;
                echo "< /td >";
            }
            else
            {
                echo "< /td >";
            }
        }

    echo "<tr>";

    }
}

?>

我转过身来。这可能会在服务器上承担更高的负载,但对于您生成的每一行,他会检查它们是否是数据库中的有效条目,否则,他继续。 希望我有意义。我没有测试过这个,只是写了我的想法。但你可能会在其中找到灵感或其他东西。

我也试图遵循你的逻辑......

Madjdc。