비슷한 질문이 있지만 도움이되지 않는 것 같습니다 ... 정확하게 이해하지 못하고 예제를 내 요구 사항으로 번역 할 수 있습니다. 어떤 도움을 주셔서 감사합니다.PHP MySQL UPDATE 조인 테이블
$ _POST 양식의 입력 필드를 사용자 테이블 (특히 관리자 키), 관리자 이름 (양식), 관리자 ID (DB)로 변환하려고합니다. 예를 보여 드리겠습니다.
Google DB에는 (다른 테이블과 마찬가지로) 사용자 테이블과 관리자 이름이 있습니다. 관리자 테이블에는 관리자의 ID (처음에는 & 성)가 있습니다. users 테이블에는 고유 id, first_name, last_name 및 연관된 관리자 ID가 있습니다. 이는 모습입니다 :
MANAGERS
id first_name last_name
1 John Doe
2 Mary Lewis
USERS
id first_name last_name manager
1 Steve Thompson 1
이 정보는 데이터베이스에서 입력되는 사용자의 테이블 편집 양식을 만들었습니다, 대신 관리자의 수 있도록 내 SELECT 문에서 두 테이블에 합류했다. id가 표시되면 실제로 폼에 managers.first_name 및 managers.last_name이 표시됩니다.
그래서 내가하려는 것은 사용자가 ID 대신 이름을 제출하여 다른 사용자와 연결된 관리자를 편집 할 수 있도록 허용하지만 DB에서이를 ID에 다시 연결합니다. 우리에게는 많은 관리자가 있으므로 대부분의 사람들은 DB에있는 ID가 무엇인지 알지 못합니다. 그러나 그들은 모두 그들의 이름을 알고 있습니다. 따라서 SQL UPDATE 쿼리를 사용하여 달성 할 수 있습니다.
사용자에게서 볼 수 있듯이, 사용자 Steve Thompson은 관리자 1 (John Doe)이지만이 사용자의 관리자는 Mary Lewis로 변경해야합니다. 사용자 편집 양식에 'Mary Lewis'라는 이름을 어떻게 입력하고 관리자 ID 대신 관리자 이름을 사용하여 DB 테이블을 업데이트 할 수 있습니까?
여러 쿼리를 한 테이블에서 여러 테이블을 업데이트 할 수 없다고 말하는 사람들을 보았습니다.하지만이 테이블은 JOIN과 조금 다르지만 느껴집니다. 이것이 가능한지 아무도 알지 못합니까?
편집 나는이 하나를 볼 수 있으며 도움이 될 느낌이 ...하지만 제대로 구현하는 방법을 잘하지 않았다. 아마도 이것은 누군가를 도울 수 있습니까? 당신이 관리자 이름을 구문 분석 관리하고 처음으로 분할하고 마지막으로 이름이 그냥 부속
update USERS set
first_name = :user_first_name,
last_name = :user_last_name,
manager = (
select id
from MANAGERS
where first_name = :manager_first_name
and last_name = :manager_last_name
)
where id = :user_id
당신은 또한 (CROSS)를 사용할 수있는 관리자에게 id
를 선택할 수 있습니다 후 Update one MySQL table with values from another
사용자 행에 관리자가 1에서 2로 변경되기를 원한다고 말하는 것이 아닙니다.나에게 당신의 도전은 어떻게 UX에 집중하길 원하는가하는 것이다. 업데이트의 어려움이 없습니다. stmt – Drew
폼의 관리자 이름을 사용하고 DB의 관련 ID가 관리자의 테이블에서 업데이트되도록하고 싶습니다. 이게 가능하다고 생각하니? –
아, 다시 릿지 야. 너 거기서 나 한테 갔어. (당신이 삭제). 당신은 사용자 (스티브 톰)에 대해 이야기하기 시작했고 어떻게 자신의 관리자를 다른 사람으로 바꾸고 싶습니까? 서버에 어떻게 알리고 싶은지 의사 소통해야합니다. 사용자 1은 mgr 2로 변경됩니다. 그래서 나에게 그것은 UX의 도전입니다. 선택기처럼. SQL은 쉽습니다. – Drew