에러가 나요 - Warning: mysql_num_rows():..

에러가 나요 - Warning: mysql_num_rows():..

QA

에러가 나요 - Warning: mysql_num_rows():..

본문

안녕하세요.
그누4 장돌벵이님의 스킨을 그누5로 바꾸면서 아래와 같이 에러가 뜹니다.
고수님들 알려주시길 부탁 드리겠습니다.

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/hosting_users/id_100/www/home/skin/board/easy_jb_5/fr_and_to_date.php on line 106

 


<?php
 if (!$fr_date)    $fr_date =  substr(date("Ymd", time()),0,6)."01";
 if (!$to_date)    $to_date = date("Ymd", time());
 if ($sort1 == "") $sort1 = "wr_1";
     if ($sort2 == "") $sort2 = "desc";
     $sql  = "select * from g5_write_$bo_table";
 if ($fr_date && $to_date) {
  $sql .= "WHERE (wr_1 between '$fr_date' and '$to_date')";
   }
 if ($gubun) {
  $sql .= "AND ca_name like '$gubun'";
   }
  $sql .= "order by $sort1 $sort2";
 $result = sql_query($sql);
 $total_count = mysql_num_rows($result); // <--------- line 106 - Warning 부분
 $rows = 500;
     $pagerows    = 30;
     $printpage   = ceil($total_count / $pagerows);
     $firstpage   =  0;
 $total_page  = ceil($total_count / $rows);
 if ($page == "") { $page = 1; }
 $from_record = ($page - 1) * $rows;
 $rank = ($page - 1) * $rows;
 $sql = $sql . " limit $from_record, $rows ";
 $result = sql_query($sql);
 $qstr = "page=$page&sort1=$sort1&sort2=$sort2";
 $qstr1 = "fr_date=$fr_date&to_date=$to_date&sel_ca_id=$sel_ca_id";
?>

이 질문에 댓글 쓰기 :

답변 4

mysql_num_rows 여기를 이렇게 수정 sql_num_rows

부연 설명은 제가 조금 해 드릴게요.
그누보드 같은 경우에는 mysql 연동과 관련된 명령어를 그대로 사용하지 않고 함수로 만들어 놓았구요. 그걸 호출해서 사용하고 있습니다.
원래는 mysql의 열(row)의 개수를 알아내는데는
mysqli_num_rows() 함수를 이용하는데요.
이걸 바로 사용하지 않고 함수로 된 sql_num_rows() 함수를 호출해서 사용하고 있습니다.
이 함수는 위치는 lib/common.lib.php 파일의1560줄 정도에
function sql_num_rows($result)
{
    if(function_exists('mysqli_num_rows') && G5_MYSQLI_USE)
        return mysqli_num_rows($result);
    else
        return mysql_num_rows($result);
}
부분에서 호출하고 있습니다.
common.lib.php 파일에 대부분의 mysql 관련 함수 정의가 되어 있습니다.


$sql.="~~~";

를 사용하실 때

 


$sql.=" ~~~";

이렇게 문자열 시작부분에 공백 하나 두고 시작해주세요.

저대로 하시면 select * from g5_write_???WHERE

이렇게 sql이 붙어버려요.

답변 주셔서 감사합니다.
알려주신대로 아래와 같이 해봤지만 에러가 동일합니다.
그리고 한 칸을 띄워야 함을 잘 배웠습니다.


 $sql = " select * from g5_write_$bo_table ";

	if ($fr_date && $to_date)
	{
		$sql.= " WHERE (wr_1 between '$fr_date' and '$to_date') ";
	}

	if ($gubun) { $sql.= " AND ca_name like '$gubun' "; } 

 	$sql.= " order by $sort1 $sort2 "; 
	$result = sql_query($sql);
	$total_count = mysql_num_rows($result);

$result 값이 null 이 되서 에러가 나는게 아닐까 싶은데요...

$sql  = "select * from g5_write_$bo_table"; 요거를

$sql  = "select * from ".$g5['write_prefix'].$tbo_table;요렇게 한 번 바꿔보세요

 $sql.= " WHERE (wr_1 between 에서 wr_1 과 between  사이에 아무런 조건이 없나요? 한 번 확인해보세요.

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

회원로그인

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