테스트 사이트 - 개발 중인 베타 버전입니다

DB 검색(select) 좀 봐주셨으면 좋겠습니다. 채택완료

별바라미 10년 전 조회 5,528

 

그누보드5를 이용하여 게시판을 수정중에 있습니다.

 

현재 사용중인 테이블명이 g5_write_detection_info 이고... 해당 테이블을 이용하는 게시판(view) 부분입니다.

 

해당 페이지에서 검색버튼을 누르게 되면 팝업창이 열리며 아래의 코드가 들어있는 파일을 열게 되고 해당 창에서는

 

g5_write_g_security_total 테이블을 검색하여 기업명등을 검색하게 되고...

 

원하는 기업명을 클릭 했을때...

 

동일한 기업명이 g5_write_detection_info 내에 존재한다면 해당 레코드의

 

notice_number (통지번호)필드값을 추출하여 필요한 부분의 값(끝에 3자리)만을 빼내어

 

숫자로 바꾸고, 숫자 형식으로 바꾼 데이터 중 가장 큰 값에 1을 더하여

 

원래 형식대로 바꾸어 다시금 돌려주는 코드입니다. (이렇게 할려구요.. ㅎㅎㅎ)

 

근데.... 프로그램 오류라고 하면서 열리지가 않네요... ㅡ.ㅡ;;

 

원래 다른 용도로 사용이 되던 코드였는데....

 

두번째 select 쿼리 부분부터 HereDoc 문법 앞 부분까지 새로이 추가한 것입니다.

 

원래 프로그램을 이리 짜면 되는게 아닌건지.... 제가 그냥 생각대로.. 이렇게하면 되지 않을까 했는데...

 

아니나 다를까... 안되네요... ㅎㅎㅎㅎ

 

어떻게 수정해야 될런지 첨삭 좀 부탁드려 봅니다.. (_ _)

 

 

</p><p><?php</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>if($sch_text != "") { // 초기 로딩시 실행 안함</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>$sql = "select company_name, detection_mail from g5_write_g_security_total where company_name like '%".$sch_text."%'";</p><p><span class="Apple-tab-span" style="white-space:pre">				</span></p><p><span class="Apple-tab-span" style="white-space:pre">		</span>$result = sql_query($sql);</p><p><span class="Apple-tab-span" style="white-space:pre">		</span></p><p><span class="Apple-tab-span" style="white-space:pre">		</span>$search_count = 0;</p><p><span class="Apple-tab-span" style="white-space:pre">		</span></p><p><span class="Apple-tab-span" style="white-space:pre">		</span>$string_year_month = date("y")."-".date("m")."-";</p><p><span class="Apple-tab-span" style="white-space:pre">		</span></p><p><span class="Apple-tab-span" style="white-space:pre">		</span>while ($row = sql_fetch_array($result)) {</p><p><span class="Apple-tab-span" style="white-space:pre">		</span></p><p><span class="Apple-tab-span" style="white-space:pre">			</span>$string_company_name = htmlspecialchars($row[company_name]);<span class="Apple-tab-span" style="white-space:pre">		</span># 고객사명</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>$string_detection_mail = htmlspecialchars($row[detection_mail]);<span class="Apple-tab-span" style="white-space:pre">	</span># 탐지통보 E-mail</p><p><span class="Apple-tab-span" style="white-space:pre">			</span></p><p><span class="Apple-tab-span" style="white-space:pre">			</span></p><p><span class="Apple-tab-span" style="white-space:pre">			</span>$sql_notice_number = "select notice_number from g5_write_g_detection_info where company_name like '".$string_company_name."'";</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>$result_notice_number = sql_query($sql_notice_number);</p><p><span class="Apple-tab-span" style="white-space:pre">			</span></p><p><span class="Apple-tab-span" style="white-space:pre">			</span>$notice_number_max = 0;</p><p><span class="Apple-tab-span" style="white-space:pre">			</span></p><p><span class="Apple-tab-span" style="white-space:pre">			</span>while ($row_notice_number = sql_fetch_array($result_notice_number)) {</p><p> </p><p><span class="Apple-tab-span" style="white-space:pre">				</span>$string_notice_number = htmlspecialchars($row_notice_number[notice_number]]);</p><p><span class="Apple-tab-span" style="white-space:pre">			</span></p><p><span class="Apple-tab-span" style="white-space:pre">				</span>$string_number_int = (int)substr($string_notice_number, -3);</p><p><span class="Apple-tab-span" style="white-space:pre">				</span></p><p><span class="Apple-tab-span" style="white-space:pre">				</span>if($notice_number_max < $string_number_int) {</p><p><span class="Apple-tab-span" style="white-space:pre">					</span>$notice_number_max = $string_number_int;</p><p><span class="Apple-tab-span" style="white-space:pre">				</span>}</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>}</p><p><span class="Apple-tab-span" style="white-space:pre">			</span></p><p><span class="Apple-tab-span" style="white-space:pre">			</span>$notice_number_max++;</p><p><span class="Apple-tab-span" style="white-space:pre">			</span></p><p><span class="Apple-tab-span" style="white-space:pre">			</span>$tmp_string = (string)$notice_number_max;</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>$string_tmp_number = str_pad($tmp_string, 3, "0", STR_PAD_LEFT);</p><p><span class="Apple-tab-span" style="white-space:pre">			</span></p><p><span class="Apple-tab-span" style="white-space:pre">			</span></p><p><span class="Apple-tab-span" style="white-space:pre">			</span>echo <<< HereDoc</p><p><span class="Apple-tab-span" style="white-space:pre">			</span></p><p><tr><td style="padding:2 0 2 10;" align="center"><a href="javascript:setVar_company('{$string_company_name}','{$string_detection_mail}','{$string_year_month}','{$string_tmp_number}'">{$row[company_name]}</a></td></tr></p><p>HereDoc;</p><p> </p><p><span class="Apple-tab-span" style="white-space:pre">		</span>$search_count++;</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>}</p><p><span class="Apple-tab-span" style="white-space:pre">		</span></p><p><span class="Apple-tab-span" style="white-space:pre">		</span>if (!$search_count){</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>echo "<tr><td colspan='2' align='center'><b>".$sch_text."</b>(으)로 검색한 고객사가 없습니다.</td></tr>";</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>}</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>}</p><p>?> </p><p>

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
10년 전

17~36 라인 대신

$sql_notice_number = 'select MAX(CAST(RIGHT(notice_number,3) AS UNSIGNED))+1 as max from g5_write_g_detection_info where company_name = "'.$string_company_name.'"';

$row_notice_number = sql_fetch_array($sql_notice_number);

$notice_number_max = $row_notice_number['max'];

if(!$notice_number_max) $notice_number_max = 1;

$string_tmp_number = sprintf('%03d', $notice_number_max);

이렇게 하면 되지 않을까 싶긴 한데요..

뒷 세자리 잘라서 찾은 맥스값이 999라면 결과값이 1000이 될텐데 문제 없는건지 모르겠습니다.

그런데 프로그램 오류가 있다고 하셨는데.. 얼핏봐서는 오류나올만한데가 잘 안보이는군요.

위 소스를 적용해도 오류가 있을 수 있겠네요. 다른 부분에서 나온 오류일지도... 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

먼지손
10년 전
아.. 실수로 sql_fetch_array()를 썼군요. sql_fetch() 로 하면 됩니다.
$row_notice_number = sql_fetch($sql_notice_number);

댓글을 작성하려면 로그인이 필요합니다.

10년 전

남보살님.... 먼지손님 두분 모두 답변 감사드립니다.. (_ _)

 

두분모두 채택해 드리고 싶었지만, 한분밖에 안 되는 관계로.. ㅎㅎㅎ

 

먼지손님 코드로 바꾸어 실행시켜 봤는데... 오류 없이 동작을 합니다.

 

그런데... 숫자 값이 증가가 되지 않네요... ㅎㅎㅎ

 

글을 하나 쓰고.... 다음에 동일 기업에 대해 글을 써도 숫자가 동일하게 001로 나오네요.... ^^

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

먼지손
10년 전
sql_query()추가하시고 나서는 제대로 잘 된건가요? 제가 실수를 하는 바람에.. ^^;
참고로 위의 제 답변의 댓글처럼 sql_fetch() 로 하면 따로 sql_query()사용하지 않으셔도 됩니다.

댓글을 작성하려면 로그인이 필요합니다.

10년 전

아.. 소스가 있었네요 ㅜㅜ 

소스를 확인 못했습니다. ㅜㅜ 완전 뻘글 된듯 ㅜㅜ

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

10년 전

SELECT notice_number FROM g5_write_g_security_total INNER JOIN g5_write_detection_info ON g5_write_g_security_total.기업명 = g5_write_detection_info.기업명

 WHERE  g5_write_detection_info.notice_number LIKE '%R필요한 값'

 

요롷게 하면 되지 않을까요? 머리가 안좋아 이미지가 안그러지네요 ㅜㅜ

일단 주어진 조건으로 함 짜봤습니다. 참고하세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인