많은 의류에 대한 주문 양식이 있습니다. 데이터베이스에서 계단식 선택을 사용하여 채워집니다. 양식의 다음 섹션은 각 크기에 대한 수량을 입력하는 일련의 입력 필드입니다. YXS-4XL부터 13 가지 사이즈가 있습니다. 특정 의류에 사용할 수없는 크기의 입력 필드를 비활성화하는 속성을 데이터베이스 항목에 부여하고 싶습니다.
이를 수행하는 가장 좋은 방법은 무엇입니까? 지금 내가 생각할 수있는 것은 각 크기에 대해 데이터베이스에 열을 삽입 한 다음 양식에서 true 또는 false를 반환하도록 호출하는 것입니다. 하지만 이것이 최선의 방법은 아닌 것 같습니다. 이 작업을 수행 할 데이터베이스 항목이 많이 있습니다.
줄이려면 단일 플래그 열 (정수)을 사용하여 각 기사에 사용할 수있는 크기를 비트별로 표시 할 수 있습니다. 플래그 값은 사용 가능한 크기에 해당하는 다음 값으로 구성됩니다.
flag size 2^ (bit no.)
1 XS 0
2 S 1
4 M 2
8 L 3
16 XL 4
등등. 여러 크기를 사용할 수 있도록하려면 두 크기 플래그의 합계를 입력하면됩니다.
6 S,M
개별 크기는 MySQL, PHP 및 JavaScript에서 사용할 수 있는 비트 AND
연산자 ( &
)를 사용하여 쉽게 확인할 수 있습니다 . 표준 int
열 (4 바이트)을 사용하면 최대 32 개의 서로 다른 크기와 가능한 모든 조합을 추적 할 수 있습니다.
SQL 문에서 크기 M을 사용할 수 있는지 확인하려면 WHERE 절을 사용하면됩니다.
WHERE flag&4 > 0
또는 JavaScript 섹션 에서 MySQL 열의 값을 포함하는 변수가 active = xl_flg & flag > 0
어디에 있는지 flag
(AJAX를 통해 수신되었을 수 있음) 및 xl_flag가 입력 필드의 속성 (또는 주변 <div>
) 과 같은 것을 사용하여 활성화 할 확인란을 쉽게 결정할 수 있습니다 . 그런 다음 또는 입력 요소 의 값 active
(true 또는 false) 에 대해 조치를 취할 수 있습니다 .hide()
show()
백 오피스에서 항목의 가용성을 설정하거나 설정 해제하려면 다음을 수행하십시오 (PHP) :
// working with constants makes your life easier ... ;-)
define("XS", 0);
define("S", 1);
define("M", 2);
define("L", 4);
define("XL", 8);
// typically the following information is provided by an AJAX post
// for example by adding the values of checked checkboxes ...
$sizes= S + M + XL; // = 11
-- set (MySQL query string in PHP):
$sql = "UPDATE ... SET flag = flag & $sizes WHERE ... ";
-- unset
$sql = "UPDATE ... SET flag = flag & ~$sizes WHERE ... ";
~
숫자의 모든 비트를 반전합니다 (논리적 역할을합니다 NOT
). &
및 의 조합은 ~
두 번째 피연산자에 설정된 비트를 끕니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다