동적 변수 생성하는 방법좀 알려주세요.
본문
form 전송을 할 때 input name 이 동적으로 생성이 됩니다.(배열 형식이 아닙니다.)
이때 form 전송을 하면 저장되는 부분에서 변수로 받아 줘야 할 텐데 저장되는 부분에서 어떻게 처리를 해주어야 하나요..??
1. main.php
<form>
<input type="text" name="audlt" value="1"> // adult가 동적으로 생성된 것입니다.
<input type="text" name="num" value="1">
</form>
2.save.php
@mysql_query("UPDATE db_table SET
audlt='".$audlt."' <== form에서 전송되는 값인 $audlt를 받아서 저장을 해야하는데 이 부분을 어떻게 동적으로 생성해야 하는지 궁금합니다.(결론적으로 쿼리문이 동적으로 생성되어야 하는 상황입니다.)
WHERE num='$num'");
답변 3
$fixed_post = array('name', 'field1');
$query = array();
$query[] = "`field1` = '{$_POST['field1']}'";
foreach($_POST as $key => $val){
if(in_array($key, $fixed_post) == false){
$query[] = "`{$key}` = '{$val}'";
}
}
mysql_query("UPDATE `db_table` SET " . implode(', ', $query) . " WHERE `num` = '{$_POST['num']}'");
이런 경우의 프로그래밍은 비추합니다.
칼럼을 동적으로 생성할수는 있습니다.
하지만.. 데이터 저장하는 부분에서 칼럼이 무한하게 생성이 될수도 있거든요.
어떤 이유에서 이렇게 해야 하는지 알면 .. 다른방법을 제시해 드릴순 있지만..
이러한 프로그래밍은 하지 않아야 합니다.
특정 메뉴나 카테고리를 만들때는 어떤값이 올지 모르지요. 이런경우에는 보통 코드테이블을 만들어서 사용합니다.
임의적인 값을 코드화 시켜서 불러오는 방식을 많이 이용 하지요.
쇼핑몰등은 카테고리 테이블 또는 코드 테이블을 만들어서 사용합니다.