Rajan
Rajan

Reputation: 2425

How to use HTML tags in Codeigniter View?

I have PHP Code Login that prints some data like this: output

I want to print this data in table format but when i write anything in my code it shows error so please help me here.

Below is my code that prints this::

            <?php
            $loginarry = $attendances;
            $logoutarry =$attendances_logouts;
            $timeduration=0;
            $login_i=0;
            $logout_i=0;


            //echo ("Array Length = " . count($loginarry)." & ".count($logoutarry)."\n<br/>");
    while(true)
    { 
        if( $login_i >= count($loginarry) && $logout_i >= count($logoutarry))
            break;

        if( $logout_i >= count($logoutarry))
        {
            echo ("Login[".$login_i."] : ".$loginarry[$login_i]->date_data." and Logout : -----------------\n<br/>");
            $login_i++;
            continue;
        }
        if( $login_i >= count($loginarry))
        {
            echo ("Login : ----------------- and Logout[".$logout_i."] : ".$logoutarry[$logout_i]->date_data."\n<br/>");
                        $logout_i++;
            continue;
        }
        //echo( "******* ".(new DateTime($loginarry[$login_i+1]->date_data))->format('U') . " **** ".(new DateTime($logoutarry[$logout_i]->date_data))->format('U'). "\n<br/>");

        //check if next login time is smaller then current logout time - if so skip current login time
        if($login_i < (count($loginarry)-1) && (new DateTime($logoutarry[$logout_i]->date_data))->format('U') > (new DateTime($loginarry[$login_i+1]->date_data))->format('U'))
        //if( date_diff(date_create($logoutarry[$logout_i]->date_data), date_create($loginarry[$login_i+1]->date_data)) > 0 )
        {
            echo ("Login[".$login_i."] : ".$loginarry[$login_i]->date_data." and Logout : -----------------\n<br/>");
            $login_i++;
            $timeduration += 10;
            continue;
        }
        if( (new DateTime($loginarry[$login_i]->date_data))->format('U') > (new DateTime($logoutarry[$logout_i]->date_data))->format('U') )
        //if( date_diff(date_create($loginarry[$login_i]->date_data), date_create($logoutarry[$logout_i]->date_data)) > 0 )
                {
            echo ("Login : ----------------- and Logout[".$logout_i."] : ".$logoutarry[$logout_i]->date_data."\n<br/>");
                        $logout_i++;
                        $timeduration += 10;
                        continue;
                }

        //if more logout entries then skip to last logout entry
        if( $login_i < (count($loginarry)-1) && $logout_i < (count($logoutarry)-1) && (new DateTime($logoutarry[$logout_i+1]->date_data))->format('U') < (new DateTime($loginarry[$login_i+1]->date_data))->format('U'))
        {
            echo ("Login : ----------------- and Logout[".$logout_i."] : ".$logoutarry[$logout_i]->date_data."\n<br/>");
                        $logout_i++;
                        $timeduration += 10;
                        continue;
        }

        echo ("Login[".$login_i."] : ".$loginarry[$login_i]->date_data." and Logout[".$logout_i."] : ".$logoutarry[$logout_i]->date_data);
        echo (" and Duration = ".((new DateTime($logoutarry[$logout_i]->date_data))->format('U') - (new DateTime($loginarry[$login_i]->date_data))->format('U')) ."\n<br/>");

        $timeduration += ((new DateTime($logoutarry[$logout_i]->date_data))->format('U') - (new DateTime($loginarry[$login_i]->date_data))->format('U'));
        $login_i++;
        $logout_i++;

    }
        echo ("Total Duration = ".$timeduration. " second(s) " );
        echo"<br>";
        echo("Total Duration = ".$timeduration/'3600'."Hours ");


            ?>  

I just want That this data is printed in table. Now the data is different for each day. the Scenario is i have a Data picker and dropdown. And now when i select a date and person from the list. It returns the login and logout information about the person's login and logout information. Also the working hours he was in office. and the time he left.

So Please help me how to print this in tabular form

newoutput

expected output

Upvotes: 2

Views: 682

Answers (1)

Vaibhav Singhal
Vaibhav Singhal

Reputation: 521

try this code.. may be it will solve your problem.

<?php
        $loginarry = $attendances;
        $logoutarry =$attendances_logouts;
        $timeduration=0;
        $login_i=0;
        $logout_i=0;

        echo '<table>';
        //echo ("Array Length = " . count($loginarry)." & ".count($logoutarry)."\n<br/>");
while(true)
{ 
    if( $login_i >= count($loginarry) && $logout_i >= count($logoutarry))
        break;

    if( $logout_i >= count($logoutarry))
    {
        echo ("<tr><td>Login[".$login_i."] : ".$loginarry[$login_i]->date_data." and Logout : -----------------\n</td></tr>");
        $login_i++;
        continue;
    }
    if( $login_i >= count($loginarry))
    {
        echo ("<tr><td>Login : ----------------- and Logout[".$logout_i."] : ".$logoutarry[$logout_i]->date_data."\n</td></tr>");
                    $logout_i++;
        continue;
    }
    //echo( "******* ".(new DateTime($loginarry[$login_i+1]->date_data))->format('U') . " **** ".(new DateTime($logoutarry[$logout_i]->date_data))->format('U'). "\n<br/>");

    //check if next login time is smaller then current logout time - if so skip current login time
    if($login_i < (count($loginarry)-1) && (new DateTime($logoutarry[$logout_i]->date_data))->format('U') > (new DateTime($loginarry[$login_i+1]->date_data))->format('U'))
    //if( date_diff(date_create($logoutarry[$logout_i]->date_data), date_create($loginarry[$login_i+1]->date_data)) > 0 )
    {
        echo ("<tr><td>Login[".$login_i."] : ".$loginarry[$login_i]->date_data." and Logout : -----------------\n</td></tr>");
        $login_i++;
        $timeduration += 10;
        continue;
    }
    if( (new DateTime($loginarry[$login_i]->date_data))->format('U') > (new DateTime($logoutarry[$logout_i]->date_data))->format('U') )
    //if( date_diff(date_create($loginarry[$login_i]->date_data), date_create($logoutarry[$logout_i]->date_data)) > 0 )
            {
        echo ("<tr><td>Login : ----------------- and Logout[".$logout_i."] : ".$logoutarry[$logout_i]->date_data."\n</td></tr>");
                    $logout_i++;
                    $timeduration += 10;
                    continue;
            }

    //if more logout entries then skip to last logout entry
    if( $login_i < (count($loginarry)-1) && $logout_i < (count($logoutarry)-1) && (new DateTime($logoutarry[$logout_i+1]->date_data))->format('U') < (new DateTime($loginarry[$login_i+1]->date_data))->format('U'))
    {
        echo ("<tr><td>Login : ----------------- and Logout[".$logout_i."] : ".$logoutarry[$logout_i]->date_data."\n</td></tr>");
                    $logout_i++;
                    $timeduration += 10;
                    continue;
    }

    echo ("<tr><td>Login[".$login_i."] : ".$loginarry[$login_i]->date_data." and Logout[".$logout_i."] : ".$logoutarry[$logout_i]->date_data);
    echo (" and Duration = ".((new DateTime($logoutarry[$logout_i]->date_data))->format('U') - (new DateTime($loginarry[$login_i]->date_data))->format('U')) ."\n</td></tr>");

    $timeduration += ((new DateTime($logoutarry[$logout_i]->date_data))->format('U') - (new DateTime($loginarry[$login_i]->date_data))->format('U'));
    $login_i++;
    $logout_i++;

}
    echo ("<tr><td>Total Duration = ".$timeduration. " second(s) </td></tr>" );
    echo"<br>";
    echo("<tr><td>Total Duration = ".$timeduration/'3600'."Hours </td></tr>");


        ?>

Upvotes: 2

Related Questions