다중 체크 박스 폼의 결과를 mysql 테이블에 저장하는 더 좋은 방법은 알고 싶습니다.muliple checkbox 결과를 mysql 테이블에 저장하는 방법
나는 두 가지 솔루션을 볼 수 있지만 아마도 직렬화 데이터를 모든 체크 박스에 대한 체크 박스에 의해 다른
- 하나의 필드
- 하나의 필드가 있습니다
들으
다중 체크 박스 폼의 결과를 mysql 테이블에 저장하는 더 좋은 방법은 알고 싶습니다.muliple checkbox 결과를 mysql 테이블에 저장하는 방법
나는 두 가지 솔루션을 볼 수 있지만 아마도 직렬화 데이터를 모든 체크 박스에 대한 체크 박스에 의해 다른
- 하나의 필드
- 하나의 필드가 있습니다
들으
그냥 자신을 위해 말하기 : 처음에 열당 하나씩 저장하는 데 문제가 생긴다면 저장된 체크 박스 값을 나중에 쿼리하는 것이 훨씬 쉽습니다. 물론 YMMV.
값을 열마다 하나씩 저장하면 테이블을 디자인 할 때의 주요 목표 중 하나 인 값이 정규화됩니다.
확인란이 하나의 입력란은 분명히 가고 싶지 않습니다. 다른 곳보다 문제가 많습니다.
결과를 동일한 테이블에 저장할 필요가있는 경우 해당 값을 기반으로 SQL 쿼리를 만들 수 없다는 것을 알고있는 한 직렬화가 가장 좋습니다.
NxN 테이블을 생성하고 가능한 원래의 테이블을 다른 테이블에 연결하여 가능한 체크 박스 값 목록을 얻을 수있는 가장 좋은 방법은 다음과 같습니다. 이 경우에 권장되는 정규화이기도합니다.
나는 Vitor Mello와 동의하며, 각 확인란이 특별한 필드에 매핑되는 테이블을 만듭니다. 이것은 오버 헤드가 많지 않으므로 문제를 해결하십시오.
또한이 답변을 서버에 다시 게시하는 데 양식을 사용하고 있다고 생각하십니까?
그래서 여기 경우 팁입니다 :
당신은 서버 측 PHP 페이지에 확인란을 포함하는 양식을 게시 할 때, 당신과 같이 설정 확인란의 확인 :
HTML :
<form>
<input type="checkbox" name="chk1" />
<input type="checkbox" name="chk2" />
<input type="submit" name="myChkSubmit" />
</form>
PHP 포스트 백 핸들러를
<?php
//Correct way to retrieve your checkboxes
$chk1 = FALSE;
$chk2 = FALSE;
if(isset($_POST['chk1']))
{
$chk1 = TRUE;
}
if(isset($_POST['chk2']))
{
$chk2 = TRUE;
}
//WRONG WAY
$chk1 = FALSE;
$chk2 = FALSE;
if(isset($_POST['chk1']))
{
$chk1 = $_POST['chk1']; //This will always evaluate to "undefined"
}
if(isset($_POST['chk2']))
{
$chk2 = $_POST['chk2']; //This will always evaluate to "undefined"
}
//NOTE: the reason the above example is incorrect is because the form will indicate checked
// status of a check box by setting the POST array element, but does not set a value
// for that element. If the element is set in POST it was checked, if it is not set,
// it will not be a recognized index in the POST array.
이 * 흥미 - 180 드에 의해 분리 된 두개의 의견 grees. 왜 그 (또는 누군가)가 그 체크 박스 값을 쿼리하고 싶지 않다고 생각하십니까? DB에 값을 넣을 이유가 하나 있지 않습니까? 그냥 그렇게 *** *** 쿼리 수 있습니까? 즉, 쿼리되지 않을 경우 DB 테이블에 저장하는 것이 왜 불편합니까? –