2010-05-28 3 views
0

예제를 통해 명확하게하려고 노력할 것입니다 :항목이 아직 생성되지 않은 경우 ID를 설정하는 방법 ..?

데이터베이스 (제품 목록)에 제품을 추가하는 관리자 페이지를 상상해보십시오. ADD ITEM 페이지를 열면 항목이 아직 생성되지 않았지만 (제출 버튼을 클릭 할 때까지는 안됨)이 제품이 표시 될 카테고리 (예 : AJAX)를 추가하려고한다고 가정 해 봅시다. 내가 AJAX 스크립트를 실행할 때,이 카테고리를 넣을 ID (내 제품)를 알려줘야합니다 ...

어떻게해야합니까?

페이지가 좋은 방법을 열 때 데이터베이스에 빈 항목을 삽입하면 (mysql_insert_id를 얻습니다).? 갈등이나 오류가 발생하기 쉽습니다 ..?

난 두려워 등 제출하기 전에 페이지를 떠나지 때문에 페이지를 다시로드 관리자의 빈 제품의 제비를 가진 DB를 채 웁니다이 기술을 ... 너희들은 그것을 어떻게

.?

+0

'이 카테고리를 넣으려면 어떤 ID (내 제품)를 말해야합니다. '아니오, 필요 없습니다. 제품을 삽입 한 후 카테고리를 추가하기 만하면됩니다. 뭐가 문제 야? –

+0

데이터베이스에서 ID를 알아야하는 모든 사용자는 삽입 후에 ID 만 얻는 것이 가장 바람직하다는 것을 이해해야하는 고급 사용자입니다. 추가 한 후에는 "기록을 위해 id $ id로 추가 된 항목" – corsiKa

+0

2 단계 프로세스로 처리 할 수 ​​있음을 알았습니다 (항목을 추가 한 다음 리디렉션하여 카테고리 페이지를 추가 할 수 있음).). 가능한 한 AJAX를 사용하려고합니다. 숨겨진 입력을 추가하는 것이 아마도 가장 좋은 방법이라고 생각합니다. – pnichols

답변

1

JS를 통해 범주를 추가 할 때 PHP 스크립트에 다시 게시하지 말고 양식을 페이지 양식에 추가하십시오. category_id[]이라는 숨겨진 입력 요소를 추가 할 수 있습니다. 이렇게하면 항목 양식을 실제로 제출할 때까지 DB에서 아무 것도 변경되지 않습니다. 그럼, PHP의 항목 컨트롤러에서, 당신이해야 할 일은 항목을 추가 한 후 카테고리를 추가하는 것입니다 ...

1

저는 거의 모든 시스템에서 생성 할 수있는 이와 같은 물건에 내 ID로 GUID를 사용합니다. (하지만 라이브러리를 사용하십시오!)

+0

사용자에게 표시 할 필요가 없다면 GUID도 사용합니다. –

+0

@Rob Goodwin 필자는 필요하지 않으면 고유 한 ID를 표시하지 않습니다. 그러나 속도 검색과 같은 것에 대해 pseudoID를 제공 할 것입니다. 그러나 그것은 단지 색인 가능 필드입니다. – jcolebrand

0

나는 ircmaxell에 동의합니다. 모든 양식 요소가 채워질 때까지 데이터베이스에 게시하면 안됩니다. 어떤 폼 요소가 표시되는지는 ajax 등을 사용하여 변경할 수 있지만 모든 데이터베이스를 한 번에 삽입하는 것이 좋습니다.

+0

나는 이것이 헛소리라고 생각한다. 좋은 비즈니스 감각을 보일 때 데이터베이스를 삽입하십시오. 그렇게하지 않으면 길을 잃을 것입니다. 그러나 나는 가능한 한 효과적으로 콜을 그룹화하는 것에 반대하지 않는다. 데이터베이스 엔진은 우리가 생각하는 경향이있는 것보다 훨씬 강력합니다. (과부하는 것이 확실하지만 가능한 한 효율적으로 작성하고 시스템을 나중에 조정하십시오.) – jcolebrand

관련 문제