0

ifステートメントを使用すると、ループの原因に問題があります。タイトルのすべてではなく、1つだけが表示されます。

これは私たちのコードです:

$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

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

これにより、結果をループして、必要な処理を実行できます。

2つ目は、結果を配列にプッシュします。配列では、whileループの外で値を使用したり、やりたいことを何でも使用できます。

于 2012-05-19T00:44:52.750 に答える
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

$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 に答える