답변 5개
오류가 나는 경우 인거 같네여
echo문으로 $sql 변수값의 내용을 찍어 가시면서 디버깅 해보세요. sql 쿼리문 where 조건에 and가 연속으로 들어가는 경우가 발생되어 오류가 나는거 같네여
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
위에서 명시한 코드에서는
이상한부분이 있습니다.
1. $sql_search 가 어디서 정의되어있는지 모른는점
2. $wz_sql_search 는 무엇을 추가하려고 하는지 판단이 모호한점
위 두가지를 약간 개선해서
아래와 같이 코드를 수정합니다.
</p>
<p>
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 </p>
<p>$wz_sql_search = "";
if ($sql_search) {
$wz_sql_search .= " and ";
} </p>
<p>if(!$is_admin) {
$add_query .= " and mb_id = '{$member['mb_id']}'";
} </p>
<p>$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE (1=1) {$wz_sql_search} {$sql_search} {$add_query} ";
$row = sql_fetch($sql);
$total_count = $row['cnt']; </p>
<p>$total_page = ceil($total_count / $page_rows); // 전체 페이지 계산 </p>
<p>if ($sca || $stx) {
$sql = " select distinct wr_parent from {$write_table} where {$wz_sql_search} {$sql_search} {$add_query} {$sql_order} limit {$from_record}, $page_rows ";
} else {
$sql = " select * from {$write_table} where wr_is_comment = 0 and {$wz_sql_search} {$sql_search} {$add_query}";
if(!empty($notice_array))
$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
$sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}
?></p>
<p>
로 확인해보세요
답변에 대한 댓글 1개
원작님께서 올린 부분을 전부 올려드리겟읍니다
목록파일코어 /bbs/list.php
if ($sca || $stx) {
$sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_order} limit {$from_record}, $page_rows ";
} else {
$sql = " select * from {$write_table} where wr_is_comment = 0 ";
if(!empty($notice_array))
$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
$sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}
@include_once($board_skin_path.'/list.query.php'); // wetoz : 조건절 커스터마이징.
@include_once($board_skin_path.'/list.query.php'); 를 한줄 추가하였습니다.
스킨파일에 추가 /skin/board/스킨/list.query.php 아래코드 추가
이렇게 된 자료인데 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
} else {
$sql = " select * from {$write_table} where wr_is_comment = 0 and {$wz_sql_search} ";
if(!empty($notice_array))
$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
$sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}
저 and 에러나지 않아요?
else 끝난 자리에 echo $sql 한번 찍어보세요. 그리고 나온걸 phpmyadmin 이나 기타 다른 DB 프로그램같은곳에 쿼리 넣는곳 있을거예요 거기에 바로 넣어보세요. 어떤 구문이나 어떤 부분에서 에러가 나는지 나올겁니다.
윗분 설명이라면 나와야 정상인데 말이죠
댓글을 작성하려면 로그인이 필요합니다.
아래코드는 관리자가 아니라면 이라는 조건이 있거든요.
if(!$is_admin) {
$wz_sql_search .= " and mb_id = '$member[mb_id]'";
}
이런식으로 안해서 안되는걸까요?
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
지금 위에 올려 놓으신 소스는
!$is_admin 즉 관리자가 아닐 경우 실행하는 의미입니다.
그러니 말씀하신 것 처럼 관리자는 제외하고 실행이 되는것이 맞습니다.
아니면 if ($member['mb_id'] != 'admin') 이런식으로 해보세요
답변에 대한 댓글 2개
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$wz_sql_search = "";
if ($sql_search) {
$wz_sql_search .= " and ";
}
if(!$is_admin) {
$wz_sql_search .= " mb_id = '$member[mb_id]'";
}
$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} {$wz_sql_search} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
$total_page = ceil($total_count / $page_rows); // 전체 페이지 계산
if ($sca || $stx) {
$sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$wz_sql_search} {$sql_order} limit {$from_record}, $page_rows ";
} else {
$sql = " select * from {$write_table} where wr_is_comment = 0 and {$wz_sql_search} ";
if(!empty($notice_array))
$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
$sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}
?>
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
and 가 연속으로 들어가는걸 어느부분 수정해야 할까요?