Как мне написать динамический сценарий SQL, который передает фермеров другому сотруднику - PullRequest
0 голосов
/ 30 мая 2018

Таблица: фермеры

Id     |  name  |   gender  |   created

14224  |  nadra |    Male   | 2018-02-28 08:47:47
14225  |  david |    Male   | 2018-02-28 08:47:47
14226  |  doreen|    Female | 2018-02-28 08:47:47
14227  |  lydia |    Female | 2018-02-28 08:47:47

Таблица: сотрудники

Id  |   name  | title       | gender

1   | Amos    | Manager     |   Male
2   | Nelson  | Field Worker|   Male

Таблица: employee_farmers

employee_id | farmer_id

1            | 14224
1            | 14225
2            | 14226
2            | 14227

Хорошо, при условии, что мы хотим передать фермерам сотрудника Амоссотруднику Нельсона, так как Амос уже давно не хочет контролировать тех фермеров ... и мы знаем имена фермеров, которые контролировал Амос ... так что используя сценарий sql для передачи фермеров Амоса Нельсону ... Амос - работникс id = 1 и Nelson id = 2, а фермеры Амоса - это Надра, Давид

<?php

$employee_name = “Nelson”;

$farmersArray = array(‘nadra’,’david’);

$arrLength = count($farmersArray);

//find the employee id 

$employee_id = "Select id from employees where name = ‘$employee_name’";

//loop throught the array of the farmers to find the id of each farmers

for ($x = 0; $X < $arrlength; $x++){

$farmer_id = "Select id from farmers where name = ‘$farmer_name’";

}

$Query =  "INSERT INTO employees_farmers (employee_id, farmer_id) 

values ($employee_id, $farmer_id) ";
?>

Версия sql ..

farmer_transfer_prep.sql

 -- Clear all previously defined prepared statements (in this session)
DEALLOCATE ALL;
-- update the id of the old employee to the new employee on table employees_farmers
PREPARE updateoldemployeeidtonew (int, int) As
UPDATE
employees_farmers
SET employee_id = $1
WHERE employee_id = $2;

farmer_transfer_exec.sql

- обновить идентификатор старого сотрудника для нового сотрудника в таблице employee_farmers -param 1 для нового, а параметр 2 для старого

EXECUTE updateoldemployeeidtonew (6 , 3);

Все еще пишет

1 Ответ

0 голосов
/ 30 мая 2018

Чтобы перевести фермеров от одного сотрудника к другому, вам не нужно циклически просматривать их и вставлять новые, вы можете обновить таблицу employee_farmers после получения значений old_employee_id и new employee_id (выбрав по имени, как вы это сделали):

UPDATE employees_farmers SET employee_id=$new_employee_id WHERE employee_id=$old_employee_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...