묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
mysql에서 order로 정렬 후 db에 업데이트하는 방법
2009.08.19 12:55
확장변수에 대하여 정렬한 후 db에 다시 저장하고 싶어요. 두 개의 값를 기준으로 정렬했어요. 명령어는 다음과 같아요.
select * from xe_document_extra_vars order by document_srl, var_idx
최종적으로는 php에 적용하려고 합니다.
자문자답이네요. ㅎㅎ
Ref. : http://www.xpressengine.com/18207088 에서 응용하였습니다.
제가 적용한 방법(확장변수)이에요.. 소트하고, value 부분만 뽑아내도록 했어요. 이 코드를 복사한 후 저장은 UTF-8방식으로 저장하셔야 합니다. 여기서는 확장변수가 13개일 때 적용한 겁니다. 하나하나 풀어가는데 쉽지 않군요.. ㅎㅎ
<?
$connect_host = "호스트주소";
$connect_id = "DB_ID";
$connect_pass = "DB_PASSWORD";
$connect_db = "DB_NAME";
$connect_table = "xe_document_extra_vars";
$xls_filename = "filename.xls";
$connect=@mysql_connect($connect_host,$connect_id,$connect_pass);
@mysql_query("set character set utf8"); // 한글 입출력 문제 해결을 위해..
$mysql=@mysql_select_db($connect_db,$connect);
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$xls_filename");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<table border=1>
<?
$fields = mysql_list_fields("$connect_db", "$connect_table");
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++) {
$field[$i]=mysql_field_name($fields, $i);
/*echo "<th>".$field[$i]. "</th>";*/
}
?>
<tr>
<td>항목A</td>
<td>항목B</td>
<td>항목C</td>
<td>항목D</td>
<td>항목E</td>
<td>항목F</td>
<td>항목G</td>
<td>항목H</td>
<td>항목I</td>
<td>항목J</td>
<td>항목K</td>
<td>항목L</td>
<td>항목M</td>
</tr>
<?
/*$result=mysql_query("select * from $connect_table");*/
$result=mysql_query("select * from $connect_table where module_srl=값 order by document_srl, var_idx");
$ctmp = 1;
echo "<tr>";
while($data=mysql_fetch_assoc($result)){
for ($i = 4; $i < sizeof($field); $i=$i+5) {
echo "<td>".$data["$field[$i]"]."</td>";
if($ctmp%13 == 0) // 확장변수 수만큼 값을 넣으세요. 여기서는 확장변수 13개임.
{
echo "</tr>";
if($i+5<sizeof($field)){
echo "<tr>";
}
}
$ctmp = $ctmp + 1;
}
}
?>
</table>
</body>
</html>