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


Данные в таблицах


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

#1 vk883

    Новичок

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

Отправлено 02 Сентябрь 2009 - 13:44

Здравствуйте. Столкнулся с такой задачей...


Я создал две разных таблицы - КОНТРАГЕНТЫ и КЛИЕНТЫ...

Нужно сделать так, чтобы при определённом значении или действии (в поле "СДЕЛАТЬ КЛИЕНТОМ" для таблицы КОНТРАГЕНТЫ ), данные из таблицы КОНТРАГЕНТЫ копировались в таблицу КЛИЕНТЫ.

Подскажите как и какими методами можно это реализовать

#2 CbCoder

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

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

Отправлено 02 Сентябрь 2009 - 14:46

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

Пример:
$table = data_table("Контрагенты","id={ID}");
if ($table['перенос']==1) {   // здесь задается условие переноса по какому либо полю
	mysql_query("UPDATE ".DATA_TABLE." SET table_id=42 WHERE id={ID}");   // 42 - id таблицы Клиенты, если у вас другое id, ставьте его
}

Примечение: id таблицы виден в адресной строке браузера при открытии соответсвующей таблицы (table=число, где число - и есть id таблицы)

#3 vk883

    Новичок

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

Отправлено 02 Сентябрь 2009 - 19:03

Всё работает, только одно есть "НО". Как сделать так, чтобы данные из одной таблицы в другую не удалялись, а копировались... А точнее нужно добиться того, чтобы данные заданных полей из одной талицы копировались в другую (не удалялись из первой таблицы).

#4 CbCoder

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

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

Отправлено 03 Сентябрь 2009 - 10:00

Просмотр сообщенияvk883 (2.9.2009, 20:03) писал:

Всё работает, только одно есть "НО". Как сделать так, чтобы данные из одной таблицы в другую не удалялись, а копировались... А точнее нужно добиться того, чтобы данные заданных полей из одной талицы копировались в другую (не удалялись из первой таблицы).
Понятно, не заметил сразу что вам нужно копировать, а не переносить.

Тогда модифицируем код следующим образом:
$table = data_table("Контрагенты","id={ID}");
if ($table['перенос']==1) {   // здесь задается условие переноса по какому либо полю
	$field_str = "table_id";
	$value_str = "42";   // id таблицы Клиенты
	
	// Выбираем все поля из текущей строки
	$sqlQuery = "SELECT * FROM ".DATA_TABLE." WHERE id={ID}";
	$result = mysql_query($sqlQuery);
	$row = mysql_fetch_assoc($result);
	foreach ($row as $field => $value) {
		if (substr($field,0,1)=="f") {
			$field_str .= ",".$field;
			$value_str .= ",'".form_sql($value)."'";
		}
	}
	
	// Вставляем новую строку
	$sqlQuery = "INSERT INTO ".DATA_TABLE." ($field_str) VALUES ($value_str)";
	mysql_query($sqlQuery);
}

Следует учесть что в обоих примерах поля копируются просто "один к одному". Если вам нужен более "конкретный" перенос полей, то код нужен несколько иной.





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

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