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


Массовое редактирование


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

#21 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 21 Август 2013 - 16:50

Может и не слишком корректно прозвучит,но это офигенно,спасибо большое!!))))

#22 CbCoder

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

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

Отправлено 21 Август 2013 - 16:59

Цитата

спасибо большое!

Пожалуйста.

Кстати, там у меня опечатка небольшая была, если уже скопировали код, замените.

#23 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 21 Август 2013 - 17:15

Да,я заметила))Учусь и пытаюсь замечать ошибки)

#24 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 21 Август 2013 - 17:25

НУ и по традиции еще вопрос..)
Не нашла в поиске,но вроде видела где-то,точно не скажу..
Как можно при вычислении в главной таблице брать данные из подтаблицы?
Поточнее-мне нужно брать значения из последней добавленной строки в подтаблицу http://take.ms/Jwcp3s

Например вот в этом выражении
($line['Дата последнего комментария'] == date("Y-m-d 00:00:00", mktime(0,0,0,date("n")-3,date("j"),date("Y"))))
Вместо "Дата последнего комментария" должно браться из подтаблицы "Комментарии" время добавления последней записи

Сообщение отредактировал Dinara: 21 Август 2013 - 17:40


#25 CbCoder

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

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

Отправлено 21 Август 2013 - 17:39

$data = data_table("Комментарии", "status=0 and `Компания`=$ID ORDER BY id desc");

Расшифровка: взять запись из таблицы "Комментарии", из активных (т.е. не корзина и не архив: status=0), из принадлежащих текущей компании (поле "Компания" = id текущей записи) и последнюю из добавленных (т.е. первую запись из отсортированных в обратном порядке (desc) по полю id)

#26 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 21 Август 2013 - 17:55

   if ((($data['Время']) <= (date("Y-m-d 00:00:00", mktime(0,0,0,date("m")-3,date("d"),date("Y")))))  )
$line['Сотрудник']=$line['Менеджер'];
$data = data_table("Комментарии", "status=0 and `Компания`=$ID ORDER BY id desc");
Я правильно или неправильно поняла?)

#27 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 21 Август 2013 - 18:51

Просто получается мне нужно брать оттуда дату и сравнивать, потом брать оттуда комментарий (текст), а еще проверять есть ли вообще записи в подтаблице..

#28 CbCoder

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

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

Отправлено 22 Август 2013 - 09:13

А почему у вас вызов функции и присвоение результата в $data идет уже после того как вы использовали $data в условии? Программа должна прыгать туда-сюда что ли? )

#29 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 22 Август 2013 - 09:17

Просмотр сообщенияCbCoder (22 Август 2013 - 09:13) писал:

А почему у вас вызов функции и присвоение результата в $data идет уже после того как вы использовали $data в условии? Программа должна прыгать туда-сюда что ли? )
А почему бы и нет!))
Спасибо,попробую!)

#30 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 22 Август 2013 - 10:41

Если время добавления в таком формате Время добавления : 22.08.2013 11:12
Вот так сравнивать с текущей датой не совсем корректно,да?
if (($line['Время добавления'])==(data("Y-m-d")))


#31 CbCoder

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

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

Отправлено 22 Август 2013 - 13:12

Естественно.

if (substr($line['Время добавления'],10) == data("Y-m-d"))

Поясняю: функция substr берет первые 10 символов от даты-времени, т.е. как раз дату в чистом виде в формате "Y-m-d" ("2013-08-22", к примеру)

#32 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 22 Август 2013 - 16:32



1: if (substr($line['add_time'],10) == data("Y-m-d"))
2: $line['f6061']=$line['f438'];

Call to undefined function data()


Как-то так мне ответила система(((


#33 CbCoder

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

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

Отправлено 22 Август 2013 - 17:10

Ваша опечатка, а я скопировал и не проверил: datе("Y-m-d"), а не data

#34 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 22 Август 2013 - 19:27

эх,даже так не помогло..http://take.ms/rvzpPO все равно поле "Сотрудник" не заполнилось значением
if (substr($line['Время добавления'],10) == date("Y-m-d"))
$line['Сотрудник']=$line['Менеджер'];


#35 CbCoder

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

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

Отправлено 23 Август 2013 - 10:01

Уверены, что даты совпадают? Скрин приложите.

#36 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 23 Август 2013 - 13:21

вот скрин,дата сегодняшняя http://take.ms/mnYSbI

#37 CbCoder

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

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

Отправлено 23 Август 2013 - 13:47

Туплю.

if (substr($line['Время добавления'],0,10) == date("Y-m-d"))


#38 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 23 Август 2013 - 14:12

Просмотр сообщенияCbCoder (23 Август 2013 - 13:47) писал:

Туплю.

if (substr($line['Время добавления'],0,10) == date("Y-m-d"))
Хм,по сравнению с моими действиям-нет,совсем не тупите)так,небольшая ошибочка))
Да,теперь все корректно)записала))

#39 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 23 Август 2013 - 18:12

Не могу понять, может я не так обозначаю
if
(($line['Смена менеджера']=="Да") and ($line['Оплачено до']!="") and ($line['Оплачено до'] < date("Y-m-d 00:00:00")) and ($line['Дата последнего комментария']!="")and ($line['Дата последнего комментария'] <= date("Y-m-d 00:00:00", mktime(0,0,0,date("m")-3,date("d"),date("Y")))))
{
$line['Сотрудник']=$line['Менеджер'];
$data['Сотрудник'] = $line['Менеджер'];
$data['Комментарий'] = "{Автоматическое сообщение} Сменился менеджер карточки (правило 3х месяцев)";
$data['Компания'] = $ID;
$data['Дата смены менеджера']= date ("Y-m-d");
insert_query($data,"Комментарии", "id=$ID" );
}
Проблема в том, что даже если поля
($line['Оплачено до']!="")
($line['Дата последнего комментария']!="")
Пустые-условия выполняются почему-то, хотя ведь не должны?

#40 CbCoder

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

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

Отправлено 24 Август 2013 - 14:10

Дело в том, что поля с датой не могут быть пустыми, вернее пустыми они могут быть при отображении в программе, но как я вам уже говорил, формат хранения даты в БД отличается от ее отображения, а в $line хранится именно внутренний формат. В частности, для пустой даты это будет "0000-00-00 00:00:00". Следовательно, если хотите сравнивать поле в $line с пустой датой, используйте именно "0000-00-00 00:00:00".

$line['Оплачено до']!="0000-00-00 00:00:00"






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

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