SQL-запрос для отображения посещаемости учителей

#mysql

Вопрос:

Мой стол для учителей выглядит так:’

введите описание изображения здесь

У меня есть таблица посещаемости учителей с данными, как показано ниже:- введите описание изображения здесь

Я пытаюсь написать коды, которые при выполнении заполнят файл excel в формате, приведенном ниже. Где A= Отсутствует, P= Присутствует и, S= Воскресенье.

введите описание изображения здесь

Логика для настоящего времени (P) : Для любой заданной даты, если присутствуют ta_clock_in_tm и ta_clock_out_tm, то это P.

Логика отсутствия (A) : Если в таблице посещаемости учителей нет записей за даты месяца, то это A.

Я также хочу отметить воскресенья как S и рассчитать общее количество текущих дней и дней отсутствия.

Я никогда раньше не делал ничего подобного. Я действительно запутался в sql-запросе. Достаточно ли обеих моих таблиц для удовлетворения моих требований??

 function export_to_mwiseallattenexcel($mnth)
{
    $columnHeader ='';
    $setData='';
    $currYr = date("Y");
    $noDaysInGvnMonth = cal_days_in_month(CAL_GREGORIAN, $mnth, $currYr);
    $columnHeader = "Sl No"."t"."Emp Name"."t";
    for($i=1; $i<=$noDaysInGvnMonth; $i  )
    {
        $columnHeader .= $i."t";
    }
    $columnHeader .= "Total Working Days"."t"."Total Absent"."t"."Total Present"."t"."Remarks"."t";
    $sql="";//<---WHAT TO WRITE HERE?????
    $query = $this->db->query($sql); 
    if ($query->num_rows() > 0) {
        foreach ($query->result_array() as $row) {
            $rowData = '';
            foreach($row as $value)
            {
                $value = '"' . $value . '"' . "t";
                $rowData .= $value;
            }
            $setData .= trim($rowData)."n";
        }
    }

    header("Content-Encoding: UTF-8");
    header("Content-type: application/vnd.ms-excel");
    header("Content-Disposition: attachment; filename=Attendance_as.xls");
    header("Pragma: no-cache");
    header("Expires: 0");
    echo ucwords($columnHeader)."n".$setData."n";        
}
 

Пожалуйста, помогите мне с SQL-запросом. Спасибо.

Комментарии:

1. Спасибо за ответ. То, что я пробовал до сих пор, показано там. Мне просто нужно небольшое руководство о том, как запрашивать таблицы для получения данных в заданном формате.

2. Вопрос в том , что входит $sql , все остальное не имеет значения. Так что вы не проявили никаких попыток.

Ответ №1:

Откройте соединение с вашим сервером. Там вы можете запросить ЛЮБУЮ команду, которую захотите: код:

         try {
            $sql = new PDO('mysql: host=localhost:3306; dbname=dbname', 'user', 'pwd');
            $sql->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $statement = "do something";
            $sql -> query($statement)
        } catch(PDOException $e) {
            echo 'Connection failed: (f) ' . $e->getMessage();
        }
 

Вот некоторые интересные команды:

 CREATE TABLE table (any datatypes); -> creates new table
INSERT INTO table () VALUES (value1),(value2); -> fills table with values
ALTER TABLE table CHANGE old_name new_bane datatype; -> change table
ALTER TABLE table DROP COLUMN user_id; -> drops a column from a database
DELETE FROM table WHERE condition; -> delete all values where condition is true
UPDATE table SET data=value WHERE condition; updates values inside a table where condition is true