DB 검색 질문...

DB 검색 질문...

QA

DB 검색 질문...

본문


<?php
include_once($_SERVER['DOCUMENT_ROOT'] ."/common.php");
$name = $_POST['name'];
$wrid = $_POST['wrid'];
$result = sql_fetch("SELECT * FROM g5_write_cscenter WHERE wr_9 = '".$name."' and wr_42 = '".$wrid."' ");
if($result['wr_3']){
?>
<?php echo $result['wr_18'];?>|<?php echo $result['wr_4'];?>|<?php echo $result['wr_3'];?>|<?php echo $result['wr_14'];?>|<?php echo $result['wr_10'];?>|<?php echo $result['wr_17'];?>|<?php echo $result['wr_8'];?>
<?php } ?>

 

글쓰기에서 이름을 검색하면 해당 정보를 뿌려주는데..

 

중복 이름이 있을경우에는 최초의 값만 검색하더라구요..

 

중복이 있을경우에 선택하게 하고싶은데.. 이럴땐 어떻게 해야 하나요?

 

wr_9가 작성자 이름 wr_42가  검색하는 사람 이름입니다.

 

wr_42가 중복일때 wr_14(전화번호)가 다를경우 선택하게 하고 싶습니다.

이 질문에 댓글 쓰기 :

답변 2


<?php
include_once("../common.php");
$sql = "
    SELECT * 
      FROM g5_write_cscenter 
     WHERE wr_9 = '{$name}' 
       and wr_42 = '{$wrid}'      
";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
    $list[] = $row;
}
$cnt = count($list);
?>
<?php if ($cnt == 1) { ?>
<?php echo $list[0]['wr_18'];?>|<?php echo $list[0]['wr_4'];?>|<?php echo $list[0]['wr_3'];?>|<?php echo $list[0]['wr_14'];?>|<?php echo $list[0]['wr_10'];?>|<?php echo $list[0]['wr_17'];?>|<?php echo $list[0]['wr_8'];?>
<?php } else if ($cnt > 1) { ?>
<select>
    <?php for ($i = 0; $i < $cnt; $i++) { ?>    
    <option value="<?php echo $list[$i]['wr_9'] ?>"><?php echo $list[$i]['wr_14'] ?></option>
    <?php } ?>
</select>
<?php } ?>

동일이름에 전화번호를 구별하기 위해서

group by로 wr_42, wr_14 검색해 주셔야합니다.

그리고 row가 여러개 나올수 있기 때문에 while문을 사용하셔서

선택박스를 만들어주셔야합니다.

아래 코드 간략하게 작성을 해봤습닌다. 코드 테스트는 안해봤는데

이런 느낌으로 접근하시면 좋을듯 합니다.

 


<?php
include_once($_SERVER['DOCUMENT_ROOT'] ."/common.php");
$name = $_POST['name'];
$wrid = $_POST['wrid'];
$result = sql_fetch("SELECT * FROM g5_write_cscenter WHERE wr_9 = '".$name."' and wr_42 = '".$wrid."' group by wr_42, wr_14 ");
$list = array();
while( $result = sql_fetch("SELECT * FROM g5_write_cscenter WHERE wr_9 = '".$name."' and wr_42 = '".$wrid."' ") )
{
    array_push($list, $row);    
}

if( count($list ) == 1 ){
?>
<?php echo $result['wr_18'];?>|<?php echo $result['wr_4'];?>|<?php echo $result['wr_3'];?>|<?php echo $result['wr_14'];?>|<?php echo $result['wr_10'];?>|<?php echo $result['wr_17'];?>|<?php echo $result['wr_8'];?>
<?php } else if(  count($list ) > 1 ) { ?>
 선택박스 구현
<?php } ?>


<?php
include_once($_SERVER['DOCUMENT_ROOT'] ."/common.php");

$name = $_POST['name'];
$wrid = $_POST['wrid'];
$result = sql_fetch("SELECT * FROM g5_write_cscenter WHERE wr_9 = '".$name."' and wr_42 = '".$wrid."' group by wr_42, wr_14 ");
$list = array();
while( $result = sql_fetch("SELECT * FROM g5_write_cscenter WHERE wr_9 = '".$name."' and wr_42 = '".$wrid."' ") )
{
    array_push($list, $result);    
}
?>
<?php echo count($list) ?>	


이렇게 수정했을때
값이 없는건 count 가 0으로 나오는데 값이 있는건 멈춰버리네요...
제가 뭘 잘못했을까요? ㅠㅠ

확인 부탁드립니다^^;
제가 회사라 코드를 테스트 못해서 죄송합니다


<?php
include_once($_SERVER['DOCUMENT_ROOT'] ."/common.php");

$name = $_POST['name'];
$wrid = $_POST['wrid'];



$rs = sql_query("  SELECT * FROM g5_write_cscenter WHERE wr_9 = '".$name."' and wr_42 = '".$wrid."' GROUP BY wr_42, wr_14 ");
while( $result = sql_fetch_array($rs) )
{
	array_push($list, $result);
}
?>
<?php echo count($list) ?>	

2차 중복값을 찾아야 하는 부분이 wr_42와 wr_43이여서..


$rs = sql_query("  SELECT * FROM g5_write_cscenter WHERE wr_9 = '".$name."' and wr_42 = '".$wrid."' GROUP BY wr_42, wr_43 ");

이렇게 고쳤는데

계속 0이 나옵니다...


$rs = sql_query("  SELECT * FROM g5_write_cscenter WHERE wr_9 = '".$name."' and wr_42 = '".$wrid."'");


이렇게 해도 0 나오는군요...

ㅠㅠ

답변을 작성하시기 전에 로그인 해주세요.
전체 104
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIR SOFT