일전에 한 번 질문 드려셔 답변을 얻었는데 최대값이 안나오더라구요 ㅠ.ㅜ
<?php
$sql = "select * from g5_board ";
$result = sql_fetch($sql);
$sql2 = "";
while($row = sql_fetch_array($result)) {
if ($sql2) $sql2 .= "union all ";
$sql2 .= "select max(wr_7) maxwr7, {$row[bo_table]} tablename from g5_write_{$row[bo_table]} ";
}
$result2 = sql_query($sql2);
while($row2 = sql_fetch_array($result2)) {
echo $row2[maxwr7];
}
echo $row2[maxwr7].$write_table;
$iden_num_set = $row2[maxwr7]+1;
sql_query(" update {$write_table} set wr_7='{$iden_num_set}' where wr_id='{$wr_id}' ");
echo "<b>"."고유번호: ".$view['wr_7']."</b>"; ?>
요약하자면 모든테이블의 여분필드 wr_7 의 값 중에 최대값을 가져와서 현재 테이블의 wr_7에
집어넣는 과정인데 위와 같이 해도 안되서 답답한 마음에 여기에 해결책을 다시 구해봅니다.
도와주십시요! ㅜ.ㅠ
답변 1개 / 댓글 2개
$max=0;
$sql = "select * from g5_board ";
$result = sql_fetch($sql);
$sql2 = "";
while($row = sql_fetch_array($result)) {
if ($sql2) $sql2 .= "union all ";
$sql2 .= "select max(wr_7) maxwr7, {$row[bo_table]} tablename from g5_write_{$row[bo_table]} ";
}
if($sql2){
$sql3=select max(maxwr7) as maxwr7 from ( $sql2 ) as a
$row3=sql_fetch($sql3);
$max=$row3[maxwr7];
}
echo $max;
$iden_num_set = $max+1;
sql_query(" update {$write_table} set wr_7='{$iden_num_set}' where wr_id='{$wr_id}' ");
답변에 대한 댓글 2개
그냥 노가다로 테이블을 하나 하나 UNION ALL 을써서 묶어서 MAX(wr_7) 을 주었습니다 ㅠ.ㅜ
혹시 저처럼 방황하실 분들을 위해 참고사항을 더 말씀드리자면,
여분필드가 VARCHAR(255) 로 되어 있어 myadmin 가셔서 필히!!! INT로 바꿔주셔야 MAX로 제대로된 비교값을 찾을 수 있답니다 ㅠ.ㅜ 아무튼 감사합니다!
답변을 작성하려면 로그인이 필요합니다.
0 이 나와버리네요 ㅠ.ㅜ
참고로 $sql3=" select max(maxwr7) as maxwr7 from ( $sql2 ) as a "
" "로 감싸고도 해봤습니다 ㅠ.ㅜ
혹시 tablename 이걸 바꿔줘야되나요?