database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29687 게시물 읽기
No. 29687
다중검색하는거 질문올립니다.
작성자
윤은숙(lydiay)
작성일
2010-06-03 16:20
조회수
7,260

여러분들 도움덕분에 하나씩 알아가면서 해결해 나가니 mysql 이 점점 재미가 있네요
도움주신 분들깨 머리숙여 감사드립니다.

혼자 해보니 또 막히네요 책을 찾아봐도 부분적으로 만나와있어서
제 실력으론 도저히 만들수가 없네요
고수님들 한번더 부탁드립니다.

검색조건을 을 시작날짜 종료날짜 지역 회사 판매자 뭐 이럴게 입력받아서 검색하는걸 만들라구하는데요

$query="select * from xe_p2010 where sdate <= '{$_POST['sdate1']}' and sdate >= '{$_POST['sdate2']}'  and sgigum = '{$_POST['sgigum']}'  and spname = '{$_POST['spname']} ' and sgubun = '{$_POST['sgubun']}' and   scfp = '{$_POST['scfp']}' ";

이런식으로 하면 제대로 값이 안나오구요

and를 or로 변경해도 제대로 안나오더라구요
검색하는 방법이 시작날짜~ 종료날짜는 and 이구 나머지는 사용자가 입력하는 값이 있는 거에 일치하는 거만 검색하구싶거든요
그래서 여기저기 찾다보니
아래처럼 하시던데 이것도 안되더라구요
 

<form method="post" action="<?=$PHP_SELF?>">
시작날짜 <input type=text name =sdate1 size=8 formType="YYYY-MM-DD">
종료날짜 <input type=text name =sdate2 size=8 formType="YYYY-MM-DD">
지역<select name=sgigum>
<option value=''>전체
<option value='수원'>수원
<option value='서정'>서정
<option value='부천'>부천
<option value='창동'>창동
</select>
회   사
<select name=spname>
<option value=''>전체
<option value='a'>a
<option value='b'>b
<option value='c'>c
</select>
구   분
<select name=sgubun>
<option value=''>전체
<option value='옷'>옷
<option value='모자'>모자
<option value='가방'>가방
</select>
판매자 <input type=text name=scfp size=8 value="<?=$cfp?>">
<input type=submit value='검색'>

</form>
<table width=100% border=0>
<tr align=center bgcolor=#99ee00>
<td>날짜
<td>지역
<td>회사
<td>구분
<td>판매자
<?


$query="select * from xe_p2010 where sdate <= '{$_POST['sdate1']}' and sdate >= '{$_POST['sdate2']}' ";

if($sgigum) $query .=  "and sgigum = '{$_POST['sgigum']}'";
if($spname) $query .=  "and spname = '{$_POST['spname']}'";
if($sgubun) $query .=  "and sgubun = '{$_POST['sgubun']}'";
if($scfp)  $query .= "and scfp = '{$_POST['scfp']}'";
 

 $result = mysql_query($query);
     while($data = mysql_fetch_array($result)){   
   ?>
 <form action="<?=$PHP_SELF?>">
  <tr>
<td> <?=$data[sdate]?>
<td> <?=$data[spname]?>
<td> <?=$data[sgubun]?>
<td> <?=$data[sgigum]?>
<td> <?=number_format($data[sgum])?>
<td> <?=$data[scfp]?>
<?
}
?>
 </table>

 </form>
 

이 글에 대한 댓글이 총 2건 있습니다.

고생이 많으십니다 ^^

 

이번에 올려주신 질문은 MySQL의 질문이 아니라 PHP에 대한 것이네요.

이와 같은 질문은 여기보다는 http://phpschool.com 등에서 물어보시면 더 많은 답변을 얻으실 수 있지 않을까 생각됩니다.

 

짧은 제 경험이나마 도움이 될까하여 적어본다면,

(1) POST로 넘어온 값에 한글이 포함되어 있다면, 이 한글의 캐릭터셋이 대상 DB와 맞는지 확인해보세요.

(2) POST로 넘어온 값을 그대로 사용하지 마세요. 이는 SQL Injection 공격의 대상이 됩니다.

(3) $query의 값을 echo로 출력해서 확인해보세요. 이를 MySQL Client 등에 입력하여 결과값이 정상적으로 나오는지 확인해보세요.

(4) where절의 조건을 하나씩 빼어가며 혹은 하나씩 추가해가며 확인해보세요.

 

박현우(lqez)님이 2010-06-03 17:39에 작성한 댓글입니다.

답변주신 박현우 님 소중한 답변 감사합니다
답변주신 내용을 완벽하게 이해는 못했지만 ㅋㅋㅋ
좀더 알아보구 알려주신 싸이트에도 질의를 올려보겠습니다.
^^

윤은숙(lydiay)님이 2010-06-03 19:17에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
29690많이 너무많은 접근이 있어서 하나의 컴퓨터의 DB로는 부족할때. [1]
VQ
2010-06-05
7393
29689MYSQL 디비를 엑셀로 다운받을때요.. [1]
꼬맹이오빠
2010-06-04
7031
29688필드내의 특정값만 그룹으로 묶을 수 있는지 알고 싶습니다. [1]
이슬비
2010-06-04
6766
29687다중검색하는거 질문올립니다. [2]
윤은숙
2010-06-03
7260
29686질문 드립니다. [1]
권기혁
2010-06-03
6588
29685쿼리 질문이요~ [1]
조중연
2010-06-02
6577
29684테이블 구조와 innodb 튜닝 질문입니다. [1]
iruis
2010-06-02
8142
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다