2009-07-18 7 views
0

두 개의 필드가 있습니다 ... 하나는 카테고리 이름이고 다른 하나는 문서 제목입니다 ... 제출을 클릭하면 문서 제목이 카테고리 이름에 링크 된 문서 테이블에 저장되어야합니다 다른 테이블에있는 ... 선택했습니다. 카테은 문서 제목의 N 번호를 가질 수두 개의 테이블을 쿼리에 연결하기

...

$result = mysql_query("UPDATE stinky_menu SET description = '$docuTitle', url = '$linkTitle' WHERE title = '$catID'"); 

어떻게 WHERE 절에 내 다른 테이블에 대한 다른 쿼리를 수행 할 수 있습니다.

+0

의사 코드가되기를 바랍니다. 그렇지 않으면 SQL 인젝션에 심각한 문제가 있습니다. PDO 또는 mysqli에서 준비된 문을 사용하는 것이 좋습니다. –

답변

1

일반적으로 HTML 폼의 선택 상자에 제목이 아닌 범주 ID가 반환되므로이 종류의 사례를 처리합니다. 따라서 참조 테이블 (이 경우에는 카테고리 테이블)을 추가로 조회 할 필요없이 레코드를 삽입하거나 업데이트 할 수 있습니다.

1

매개 변수에 대한 명명 된 형식 (? -form도 물론 작동합니다)을 사용하면 원하는 내용을 수행하는 가장 간단한 방법은 업데이트에서 FROM 및 JOIN을 사용하는 것입니다 (일부 세부 정보에 따라 ' t)는 제공 :

UPDATE stinkymenu 
SET description = :docuTitle, url = :linkTitle 
FROM stinkymenu 
JOIN categorytable 
ON stinkymenu.catId = categorytable.id 
WHERE categorytable.title = :catId 

같은 '준비된 문 "을 사용하여 변수에 매개 변수를 바인딩하는 방법을 PDO's docs를 참조하십시오.

관련 문제