Перейти к содержимому


Как вставить фото сотрудника

Фото сотрудника

Сообщений в теме: 7

#1 ManFree

    Активный участник

  • Пользователи
  • PipPipPip
  • 107 сообщений

Отправлено 19 Июнь 2014 - 11:49

Я могу использовать данные из таблицы пользователи, но она является системной и в нее обавить и изменить поля не выйдет
Есть таблица сотрудники которая по логину как я полагаю связана с пользователями.
Можно как то использовать данные сотрудников из таблицы сотрудники в других таблицах и печатных формах без дополнительных полей связей?

Сообщение отредактировал ManFree: 19 Июнь 2014 - 11:49


#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 19 Июнь 2014 - 12:19

Таблица Сотрудники ничем не отличается от любой другой таблицы, и любой вывод ее полей делается также.

#3 ManFree

    Активный участник

  • Пользователи
  • PipPipPip
  • 107 сообщений

Отправлено 19 Июнь 2014 - 15:50

Просмотр сообщенияCbCoder (19 Июнь 2014 - 12:19) писал:

Таблица Сотрудники ничем не отличается от любой другой таблицы, и любой вывод ее полей делается также.
понял значит придется мудрить вычисляемые поля

#4 ManFree

    Активный участник

  • Пользователи
  • PipPipPip
  • 107 сообщений

Отправлено 20 Июнь 2014 - 08:19

Что делаю не так

Создал в нужной мне таблице поле изображение с названием "1234"

На сохранение записи в таблице делаю следующее вычисление


$user_data = sql_select_array(USERS_TABLE, "id=",$line['Кто добавил']);
$li= $user_data['fio'] // Получаю фио текущего пользвателя

$us = sql_select_array(borolg_data46, "f483=",$li);  выбираю массив значений из таблицы сотрудники. если фио равно $li

$bus = $us['Фото']; //присваиваю переменной значение из поле фото

$line['1234'] = $bus;


Записываю значение имени файла в поле , знаю что нельзя так просто и надо получить путь. Это я знаю как сделать но хотя б имя файла то должно быть.Если я беру картинку из этой же записи только другого поля имя файла сохраняется.

Заранее спасибо за помощь

Сообщение отредактировал ManFree: 20 Июнь 2014 - 08:22


#5 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Июнь 2014 - 10:27

По сотруднику:
  • ФИО в запросе должно быть в кавычках, т.к. это текст (иначе ошибка)
  • При обращении к таблицам конфигурации лучше использовать data_* функции, а не sql_*
  • В запросе к Сотрудникам можно было использовать поле "Пользователь" и сразу вставлять туда $line['Кто добавил'], не совсем понятно зачем вам такой финт с ФИО.
Собственно по фото: с именем файла все верно, его тоже надо копировать (из поля, как вы и сделали), но кроме имени необходимо копировать и сам файл. Поищите по форуму по слову "get_file_path".

#6 ManFree

    Активный участник

  • Пользователи
  • PipPipPip
  • 107 сообщений

Отправлено 23 Июнь 2014 - 15:27

Проморгал поле сотрудник. потому начиная с пункта 3 сделал так

$us = sql_select_array(borolg_data46, "f1400=",$line['Кто добавил']);
$li=get_file_path(558, $us['ID'], $us['Фото']);

Получил путь к файлу с фоткой сотрудника

путь несуществующий... выдает нет ни таких папок ни такого файла а нужный мне файл лежит в другой директории

/public_html/files/8e/6d/8e6d119005293f3a84392cadde71d3b7_558__0

дальше, если все же получится, как в нужное мне поле то это записать?

пытаюсь сделать так

$data = file_get_contents($li, true);
save_data_file(7560,$line['ID'], $li, $data);

но что-то не выходит ничего

Сообщение отредактировал ManFree: 23 Июнь 2014 - 20:36


#7 ManFree

    Активный участник

  • Пользователи
  • PipPipPip
  • 107 сообщений

Отправлено 24 Июнь 2014 - 08:24

В общем победил. Но так и не понял почему не смог обратится к ассоциативному массиву по имени
Сделал так

$res = data_select(46, "f1400=",$line['Кто добавил']);
$us = sql_fetch_array($res);	// получаем  массив
$li=get_file_path(558, $us[0], $us[12]);  // $us[0] - ID  , $us[12] - поле фото
$dat = file_get_contents($li, true); // загружаем файл в переменную
save_data_file(7560,$line['ID'],$us[12],$dat); // сохраняем файл
$line['1234']=$us[12]; // записываем имя файла в поле

Сообщение отредактировал ManFree: 24 Июнь 2014 - 08:24


#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 24 Июнь 2014 - 08:49

Цитата

Но так и не понял почему не смог обратится к ассоциативному массиву по имени

Тоже не понял, sql_fetch_array должна выдавать оба типа ключей. Возможно какой-то сбой, но вообще рекомендуется использовать sql_fetch_assoc - она точно выдает ассоциативный массив. Либо еще проще:

$us = data_select_array(46, "f1400=",$line['Кто добавил']);   // получаем ассоциативный массив СРАЗУ






Количество пользователей, читающих эту тему: 8

0 пользователей, 8 гостей, 0 анонимных