질문/조언질답게시판

  $selc = mysql_select_db($db_info->master_db['dbname'],$conn);
  $q = 'select * from xe_comments where member_srl = 7009 AND regdate >= (CURDATE()-INTERVAL 1 DAY)';
  $re = mysql_query($q,$conn);
  $total_record = mysql_num_rows($re);

 

오늘날짜에 올라온 코멘트 숫자만 뽑아오려고 합니다.

regdate >= (CURDATE()-INTERVAL 1 DAY)

이부분이 잘못된거같은데.... 구글링을 아무리 해봐도 못하겠어요..

 

어떻게하면 오늘 날짜에 올라온 코멘트 숫자 수만 뽑아올 수 있을까요?

  • profile
    select count(*)로 하시고 strtotime date 스까서 만드시면 됩니다. -1데이로 값 설정하시고 값보다 높은 데이터 카운트 뽑으시면 됩니다. 일일이 mysql 연결하시 말고 애드온 폴더에 queries 폴더 만들면 XML 쿼리 사용 가능합니다.
  • profile
    regdate를 보면 201705180518 이런식으로 되있기에 포맷을 맞춰야합니다

    20170519은 201705180518보다 작습니다
  • profile

    1. XE에서는 XE 방식대로!! DB::getInstance()->_query('쿼리문');

    2. 댓글 내용은 필요없고 몇 개인지만 알면 된다면 select count(*) 쿼리를 쓰는 것이 훨씬 빠릅니다.

  • profile profile
    Xe에서도 shell_exec 쓸수 있는법 있나여?
  • profile profile
    shell_exec은 PHP 내장함수이므로 호스팅에서 막아놓지만 않았다면 어디서든지 쓸 수 있습니다.
  • profile
    위 내용중 regdate >= (CURDATE()-INTERVAL 1 DAY)
    틀린 조건이긴 하나 위 조건은 오늘이 아니라 하루전이라는 조건이지요
    아울러 포멧도 동일하게 주어야만 비교를 하거나 정확한 데이터를 뽑을 수 있습니다.

    오늘날짜의 데이터를 조건으로 한다면
    date(regdate) = CURDATE()
    date함수로 (년도-월-일) 을 변환하여 오늘날짜 CURDATE()와 비교하시면 됩니다.
    때에 따라 시간도 비교하신다면 date_format 함수로 포멧을 맞추어서 비교하시면 됩니다.