채택완료

쿼리문을 질문드립니다. 어찌해야하나요?

2018-09-14 (금) 21:43:38 2,780

우선 그누4사용자구요..

Copy
$result=sql_query("select * from $g4[member_table]  where mb_2='Y'  and mb_level='8'  order by mb_name asc");

 

 $jj=-1; $t=0;
 while($row=sql_fetch_array($result)){ $jj++; $t++;

 

  //$rtime은 이전 페이지에서 넘어오는 시간입니다. $rtime를 찍으면 10:30 나옵니다.

  //분을 떼어버리고 10만 가져옵니다.

  $vartime = substr($rtime,0,2);
  

  //mb_8에는 승인시간 즉 09,10,11,12,13,14 이런식으로 쉼표로 구분해서 특정시간만 저장됩니다.

  $givetime = explode(",",$row[mb_8]);  //배열

 

  //넘어온 시간을 승인된 시간의 배열안에 값이 없으면 continue 시킵니다.   

  if(!in_array($vartime, $givetime)) continue;

위와 같이 했는데요... 의도한바데로 승인시간에 해당되지 않는 멤버는 확실히 제거되고 리스트 출력을 하네요..

그런데 문제는 요..

$row_cnt=mysql_num_rows($result);
echo $row_cnt;

찍어보면..

출력되는 멤버수와 result에서 검색한 멤버의 카운트가 다르게 됩니다. ㅠㅠㅠㅠㅠ

당근 그렇게 나올수 밖에 없네요..ㅠㅠㅠ

이게 왜 중요하냐면요.. 페이지나눌때도 문제가 되구요. 특히 위의 코드에서는 멤버출력을 테이블로 2개로 나누어 출력하니까 카운트가다르면 박스가 정상적으로 그려지지 않네요..

해결방안은 continue를 쓰지 않고 result 쿼리문에서 조건을 줘야하는데요...

where 검색절에서도 배열이 들어가는지.. 또 거기까진 실력이 안되구요..

고수님들 해결방안 좀 알려주세요..

|

답변 2개

채택된 답변
+20 포인트

$vartime = substr($rtime,0,2);

and INSTR( wr_1, $vartime )

또는

FIND_IN_SET 사용

2018-09-15 (토) 00:45:03

감사합니다.

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