0

当我们使用 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 >";

    }
4

3 回答 3

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 >";

    }
   }

?>
于 2012-05-19T10:06:09.617 回答
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 循环之外的值或您想做的任何事情。

于 2012-05-19T00:44:52.750 回答
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>";

    }
}

?>

我已经扭转了循环。这可能会对服务器造成更高的负载,但是对于您生成的每一行,他都会检查它们是否是数据库中的有效条目,如果不是,他会继续。希望我说得通。我没有测试过,只是写下我的想法。但你可能会从中找到灵感或其他东西。

我也试过按照你的逻辑...

马杰德克。

于 2012-05-19T12:33:02.727 回答