2014-09-27 2 views
-1

안녕하세요 여러분, 일부 콘텐츠를 스크랩하기 위해 코드를 사용하고 있습니다. 이것을 mysql에 삽입해야한다. 또한 제목이 동일하고 게시물을 삽입하지 않는 경우 제목을 확인해야합니다.간단한 html dom과 mysql insert

내 코드 벨로우즈가 존재해도 첫 번째 레코드를 삽입합니다. 이 경우 > 0== 1을 변경하는

foreach($html->find('div.article_item') as $div) { 

     $title = $div->find('h2.title a ', 0)->innertext;    
     $thumb = $div->find('p.image_left img ', 0)->src; 
     $details = $div->children(3)->plaintext; 
     $url = $div->find('p.more a', 0)->href; 

     //I need only 3 posts to grab 
     for($i= 0 ; $i <= 3 ; $i++) 
     {  

     $qry="SELECT * FROM posts WHERE posttitle ='$title'"; 
     $result=mysqli_query($connectiondb, $qry); 

     //Check whether the query was successful or not 
     if($result) { 
     if(mysqli_num_rows($result) == 1) { 
     //Post Exists 
     }else { 

     $posttitle = $title; 
     $postthumb = $thumb; 
     $postdetails = $details; 
     $posturl = $url; 

     mysqli_query ($connectiondb, "INSERT INTO posts (posttitle, postthumb, postdetails, posturl) VALUES ('$posttitle', '$postthumb','$postdetails','$posturl')"); 

    } 


    }else { 
    (mysqli_error()); 
    } 
    mysqli_close($connectiondb); 

    } 


// Clear dom object 
$html->clear(); 
unset($html); 
} 
+0

너무 추한 들여 쓰기 및 많은 SQL 주입을 볼 ... 잘되지 –

+0

은 귀하의 질문에 정확히 무엇이며? – derdida

+0

당신의 의견에 대한 확인은 추한 것입니다. 왜 그것이 추한 이유를 설명하고 어떻게하면 더 안전하게 만들 수 있습니까? 나는 프로가 아니야, 노력하고있어! –

답변

1

시도 :

if(mysqli_num_rows($result) > 0) { 
    // Post Exists 
} else { 

그리고 당신은 mysqli를 사용하고 있기 때문에, 왜 준비된 문을 사용하지 마십시오.

(!) 참고 : 그 코멘트, 난 단지 세 개의 게시물이 필요 ,

+0

안녕하세요 고스트 ... 안녕하세요 생명 구세주 :-) 우리가 disqus 할 수 있도록 여기에 채팅을 열 수 있습니까? –

+0

@IreneT. 그래서이 코드를 시도한 후에 무슨 일이 일어 났습니까? 당신은 어떤 오류도 없었습니까? 내가 어떻게 채팅을 열지 모르겠지만, 그냥 자체가 튀어 나와 – Ghost

+0

나는 그것이 더 많은 평판을 필요로하지 않습니다 ... 그게 어디 excactly 코드를 넣어 설명 할 수 있습니까? 이것을 시도하십시오 : http://www.chattory.com/?chat=205786 –