테스트 사이트 - 개발 중인 베타 버전입니다

중복글 체크중 이상한점. 채택완료

김형김 6년 전 조회 3,649

for{

//게시물 파싱 후 아래로 넘기기

}

 

function insert_write($a){

//중복된 제목 찾기

$result = sql_fetch(" select COUNT(*) as cnt from $write_table  where  wr_subject = '$wr_subject' ");  

 

if ($result[cnt]) { 

//중복 게시물 있으면 해당 제목을 거북이라고 하자 $wr_subject = "거북이";

}

}

 

 

안녕하세요 형님  위와 같은 상황인데요

중복값이 있으면 해당 게시물 제목만 거북이라고 안나오고

모든 게시물 제목이 거북이라고 라고 입력됩니다

 

많이 해보았는데 어떤 이유인지 잘 모르겠습니다 형님...

소스가 길어서 요약했는데 이해하기 어려우시면 죄송합니다

 

 

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

답변 3개

채택된 답변
+20 포인트
6년 전

크롤링해서 가져온 글을 제목과 내용으로 파싱하고

제목으로 DB 해당 게시판 wr_subject와 같은 것이 있나 중복여부를 확인하는 과정이라 보이는데

중복제목이 있으면 wr_subject를 '거북이'라 하고 DB에 insert하겠죠.

이러는 과정에 쿼리상에 문제가 있어 insert 대신에 update를 시키신것 같고 ㅋㅋㅋ

그러니 당연히 wr_id값을 지정하지 않으셨을테고 해서 전부 "거북이"가 되었다고 보입니다.

 

파싱한 현재 내용은 당연히 DB에 넣지 않은 상태니  "거북이"가 될리가 없죠.

다시 한번 소스를 잘 살펴 보시길 권해 드립니다.

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

김형김
6년 전
엇 평정심 형님 말씀하신것과 다른 질문이 있는데요

===================

for ($i = 0; $i < count($arr); $i++) {

$domParser->load(file_get_contents($arr[$i])); //각 게시물주소

$subject = $domParser-> find('title') // 게시물의 제목추출


//형님 이부분 부터 질문입니다

$row = sql_fetch(" select COUNT(*) as cnt from $write_table where wr_subject = '여기에 뭐라고 써야될지 모르겠습니다' ");

if ($row[cnt]) {
이곳도 ..궁금합니다 ="중복";
}

}

===================


제가 틀린 것 같아서 질문드려봅니다 (__ )

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

ifelse
6년 전

리스트 같은경우 $list[$i][wr_subject] 처럼 각각 번호가 있는데 $wr_subject로 하면 모든 게시글의 글제목이 바뀌는거 아닌가요? 게시글마다의 $wr_subject를 바로보겟금 바꿔야 하는거 아닌가 싶은데..한달전에 댓글처리하는데 저도 일괄 변경되서 $list[$i] 붙혀서 처리했었거든요.. 저도 초보라 ㅡ,.ㅡ 소스를 직접 만져보지 않는이상은 감을 못잡기때문에..-.- 암튼 증상이 비슷해서 지나가다 말씀드려봅니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

김형김
6년 전
저도 이부분이 굉장히 유력하다고 생각하는데 아직 해결이 되질 않네요 ^^;;

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

6년 전

if ($result[cnt]) { 

 

if ($result[cnt] >= 2) { 

 

로 바꾸셔야 되지 않나요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

김형김
6년 전
형님 댓글보고 엇! 하고 달려가서 해봤으나 요 문제가 아닌가봅니다 .
그래도 대단히 감사드립니다.
답답해서 몸이 막 꼬이고 브레이크 댄스를 출 것 같네요
나시
6년 전
문자열과 숫자 문제가 아니라면 다른 문제 인가 보네요 ^^

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

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

로그인