dev77rus (04 Сентябрь 2012 - 16:18) писал:
Есть задача, не знаю как подступиться.
Необходимо ежемесячно составлять табель учета рабочего времени сотрудников.
Как я вижу, нужно каждый месяц в таблицу вносить всех сотрудников, чтобы сделать определенное количество записей за месяц.
Это неудобно и сложно, большая вероятность совершить ошибку, почти ручной труд, несмотря на богатые возможности программы.
Как такую задачу можно автоматизировать? Например выбираешь создание записи - /август/ /2012 год/, а в этой записи уже есть все строки с работающими на данный момент сотрудниками.
Здравствуйте, хочу поднять вопрос в первой части - заполнение табеля по доп.действию. Это я осилил, получилось очень удобно, спасибо вам за программу!
Возник вопрос, как сделать так, чтобы записи в результате работы доп.действия не дублировались? Ну например нажал я два раза кнопку и дублирующие записи не добавились, а произошла проверка наличия таких записей в подчиненной таблице и в случае если есть расхожедния, добавились только новые записи из справочника сотрудников.
Попробовал поставить запрет на дублирующиеся значения в подчиненной таблице, не работает, т.к. там должны быть одинковые записи, но с разными ID. Все работало бы при некоем подобии primary key, как в Access. Далее я написал код проверки наличия записей, но что-то не работает.
Не могу найти ошибку.
$sqlQuery1 = "SELECT * FROM ".DATA_TABLE."89 WHERE status=0 AND f1099='да'"; //выбираем список "по умолчанию" из таблицы "задачи чеклиста"
$result1 = mysql_query($sqlQuery1) or die(mysql_error()."<br>".$sqlQuery1);
while ($row1 = mysql_fetch_array($result1)) //организуем цикл перебора записей, выбранных в таблице "задачи чеклиста"
{
$data['Регистрационный знак'] = $ID; // пишем в массив ID текущей строки (машины) в поле таблицы чеклист
$data['Название'] = $row1['id']; // пишем в массив id из таблицы "задачи чеклиста" в поле таблицы "чеклист", чтобы образовалась связь
// ВАЖНО! Здесь id должно быть написано маленькими буквами
// проверка дублирующихся записей в таблице "чеклист"
$sqlQuery2 = "SELECT * FROM ".DATA_TABLE."85 WHERE status=0 AND f1067='$ID'"; //выбираем список задач таблицы "чеклист" где номер машины равен текущему
$result2 = mysql_query($sqlQuery2) or die(mysql_error()."<br>".$sqlQuery2);
while ($row2 = mysql_fetch_array($result2)) //организуем цикл перебора записей, выбраннх в таблице "задачи чеклиста"
{
if ($row2['Название'] = $row1['id']) { //если запись с таким названием существует в таблице "чеклист"
// не делаем ничего
} else {
insert_query($data,"Чеклист"); //создаем новую запись в таблице "чеклист"
}
}
}