Спасибо за функцию.
Пытаюсь получить файлы в новой записи но никак не получается. Выводится только файл из второй записи и дублируется столько раз сколько было файлов.
Немного объясню в чем заключается задача: подгружаю письма в КБ. Проверяю есть ли необработанные письма от одного и того же адреса. Если есть, то склеиваю эти письма путем создания новой записи. а необработанные письма становятся обработанными. Таким образом мне нужно добавить в новую запись файлы из писем.
Алгоритм получения файлов такой:
- Получаю названия и пути файлов в массивы из первого письма.
- Получаю названия и пути файлов в массивы из второго письма.
- Сливаю массивы
- В цикле произвожу запись файлов в новую запись
Подскажите пожалуйста в чем может быть ошибка?
Вот часть кода где я произвожу "склеивание":
$res2 = data_select(580, "`status` = 0 AND (`f9920`='Входящее (тек.)' OR `f9920`='Входящее (нов.)') AND `f9800` =",$line['От кого']," AND `f9810` = 'Новый'" /*AND `f9930` =",$line['Менеджер']*/);
while($row2 = sql_fetch_assoc($res2))
{
if($row2['f9800']==$line['От кого'] && $check != "777")
{
$tx = $row2['f9830'];
//формируем поля для новой записи
$check = "777";
$mas['Кому'] = $row2['f9780'];
$mas['Имя отправителя'] = $row2['f9790'];
$mas['От кого'] = $row2['f9800'];
$mas['Тема'] = "Объединенное сообщение от ".$row2['f9790'];
$mas['status_files'] = "1";
//$mas['Приоритет'] = $row2['f9900'];
$mas['Статус'] = $row2['f9920'];
$mas['Менеджер'] = $row2['f9930'];
$mas['Контрагент'] = $row2['f9880'];
$mas['Поставщики'] = $row2['f9890'];
$mas['Фрилансеры'] = $row2['f9940'];
$mas['Соискатели'] = $row2['f9950'];
$mas['Вывод'] = $row2['f9980'];
$mas['Дата'] = $row2['f9840'];
$mas['Статус ответа'] = "Новый";
$mas2['Действие'] = "Письмо";
$mas2['Клиент'] = $row2['f9790'];
$mas2['Менеджер'] = $row2['f9930'];
$mas2['Статус'] = "Новый";
$mas2['ID письма'] = $row2['id'];
$mas2['Email'] = $row2['f9800'];
$mas2['Ссылка'] = "нет";
if($line['Файлы']!=NULL)
{
$files = explode("\r\n", $line['Файлы']);
foreach ($files as $filename)
{
$dat[] = get_file_path(9860, $line['ID'],$filename);
}
}
}
if($row2['f9800']==$line['От кого'] && $check == "777" && $tx != $row2['f9830'])
{
if($row2['f9860']!=NULL)
{
$files2 = explode("\r\n", $row2['f9860']);
foreach ($files2 as $filename2)
{
$dat2[] = get_file_path(9860, $row2['ID'],$filename);
}
}
$tx.= "\r\n\r\nДобавлено в ".$row2['f9840']." : \r\n\r\n".$row2['f9830'];
$mas['Сообщение'] = $tx;
$mas['Приоритет'] = $row2['f9900'];
$mas2['Приоритет'] = $row2['f9900'];
$mas2['Дата'] = $row2['f9840'];
$res3 = data_select(580, "`status` = 0");
while($row3 = sql_fetch_assoc($res3))
{
if($row3['f9830']==$tx && $row3['f9820']== "Объединенное сообщение от ".$row3['f9790'])
{
$insert = "123";
}
}
if ($insert!="123")
{
$new_id = insert_query($mas,Почта);
$dat_all = array_merge($dat, $dat2);
$fl = array_merge($files, $files2);
for($i=0; $i<count($dat_all);$i++)
{
$mas_upd['Файлы'] =$mas_upd['Файлы'] ? ($mas_upd['Файлы']."\r\n".$fl[$i]):$fl[$i];
save_data_file(9860, $new_id, $fl[$i], $dat_all[$i]);
}
update_query($mas_upd, "Почта", "id=$new_id");
$new_id_log = insert_query($mas2,Лог);
$upd_data['Статус ответа'] = "Обработано";
$upd_log['Статус'] = "Обработано";
$res4 = data_select(580, "`status` = 0 AND `f9800`=",$line['От кого']);
while($row4 = sql_fetch_assoc($res4))
{
if($row4['f9800']==$line['От кого'] && $row4['f9820']!="Объединенное сообщение от ".$row4['f9790'])
{
$newid = $row4['id'];
update_query($upd_data, "Почта", "id=$newid");
update_query($upd_log, "Лог", "f10120=$newid AND f10070 != 'нет'");
}
}
$insert = "123";
}
}
}
Сообщение отредактировал aleks.goodcolor: 03 Сентябрь 2014 - 14:53