#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