에러가 나요 - 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
</strong></p>
<p><?php</p>
<p> 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";</p>
<p> $sql = "select * from g5_write_$bo_table";</p>
<p> if ($fr_date && $to_date) {
$sql .= "WHERE (wr_1 between '$fr_date' and '$to_date')";
}</p>
<p> if ($gubun) {
$sql .= "AND ca_name like '$gubun'";
}</p>
<p> $sql .= "order by $sort1 $sort2";
$result = sql_query($sql);
$total_count = mysql_num_rows($result); // <--------- line 106 - Warning 부분</p>
<p> $rows = 500;
$pagerows = 30;
$printpage = ceil($total_count / $pagerows);
$firstpage = 0;</p>
<p> $total_page = ceil($total_count / $rows);
if ($page == "") { $page = 1; }
$from_record = ($page - 1) * $rows;</p>
<p> $rank = ($page - 1) * $rows;</p>
<p> $sql = $sql . " limit $from_record, $rows ";
$result = sql_query($sql);</p>
<p> $qstr = "page=$page&sort1=$sort1&sort2=$sort2";
$qstr1 = "fr_date=$fr_date&to_date=$to_date&sel_ca_id=$sel_ca_id";</p>
<p>?></p>
<p><strong>
답변 4개
답변에 대한 댓글 6개
그누보드 같은 경우에는 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.= " WHERE (wr_1 between 에서 wr_1 과 between 사이에 아무런 조건이 없나요? 한 번 확인해보세요.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p>$sql.="~~~";</p>
<p>
를 사용하실 때
</p>
<p>$sql.=" ~~~";</p>
<p>
이렇게 문자열 시작부분에 공백 하나 두고 시작해주세요.
저대로 하시면 select * from g5_write_???WHERE
이렇게 sql이 붙어버려요.
답변에 대한 댓글 2개
알려주신대로 아래와 같이 해봤지만 에러가 동일합니다.
그리고 한 칸을 띄워야 함을 잘 배웠습니다.
[code]
$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);
[/code]
그 후 출력 결과와 에러를 보여주시면 감사하겠습니다.
@txron
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
작은별님 정말 감사드립니다.