On 15 February 2015 12:51:35 GMT+00:00, hadi <almarzuki2011@xxxxxxxxxxx> wrote: > > >> -----Original Message----- >> From: Ashley Sheridan [mailto:ash@xxxxxxxxxxxxxxxxxxxx] >> Sent: Sunday, February 15, 2015 1:43 PM >> To: hadi; php-general@xxxxxxxxxxxxx >> Subject: Re: duplicate image >> >> >> >> On 15 February 2015 10:24:23 GMT+00:00, hadi >> <almarzuki2011@xxxxxxxxxxx> wrote: >> >Hi, >> > >> >I have script which download rssfeed from the internet. But >> >unfortunately it keep downloading duplicate image to the database. >> > >> >Here is my script >> > >> ><?php >> >require 'database.php'; >> > >> >$url = "http://www.albaldnews.com/rss.php?cat=24"; >> >$rss = simplexml_load_file($url); >> > >> >if($rss) >> >{ >> >echo '<h1>'.$rss->channel->title.'</h1>'; >> >echo '<li>'.$rss->channel->pubDate.'</li>'; >> >$items = $rss->channel->item; >> >foreach($items as $item) >> >{ >> > >> >$title = $item->title; >> >$link = $item->link; >> >$published_on = $item->pubDate; >> >$description = $item->description; >> >$category = $item->category; >> >$guid = $item->guid; >> >$enclosure = $item->enclosure[0]['url']; >> > >> > >> >$ch = curl_init ("$item->enclosure"); >> >curl_setopt($ch, CURLOPT_HEADER, 0); >> >curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, >> >CURLOPT_BINARYTRANSFER,1); $rawdata=curl_exec ($ch); curl_close >($ch); >> > >> > >> >mysqli_real_escape_string($conn,$item->title); >> >mysqli_real_escape_string($conn,$item->link); >> >mysqli_real_escape_string($conn,$item->pubDate); >> >mysqli_real_escape_string($conn,$item->description); >> >mysqli_real_escape_string($conn,$item->category); >> >$img=mysqli_real_escape_string($conn,$rawdata); >> > >> >$sql = "INSERT INTO feedtable >> >(title,link,pubdate,description,category,image)VALUES >> >>('$item->title','$item->link','$item->pubDate','$item->description','$i >> >tem-> >> >category','$img')"; >> >$result = mysqli_query($conn, $sql); >> > >> >if ($conn->query($sql) === TRUE) { >> > echo "New record created successfully\n"; } else { >> > echo "Error:\n " . $sql . "<br>" . $conn->error; } >> > >> >} >> >} >> > >> >?> >> >> You need to either set a unique index on that field in the DB and >deal with >> the warning (either at an error level or with an SQL construct like >INSERT ... >> ON DUPLICATE KEY UPDATE) or query that table first to see if what >you're >> inputting is unique. >> >> As you're doing this with binary data, I would recommended generating >a >> hash of the image and comparing that, as MySQL might have problems >doing >> comparisons of such large objects, and it won't be quick. > > >Ash, > >Look what I have done, > ><?php >require 'database.php'; > >$url = "http://www.albaldnews.com/rss.php?cat=24"; >$rss = simplexml_load_file($url); > >if($rss) >{ >echo '<h1>'.$rss->channel->title.'</h1>'; >echo '<li>'.$rss->channel->pubDate.'</li>'; >$items = $rss->channel->item; >foreach($items as $item) >{ > >$link = $item->link; > > > > >mysqli_real_escape_string($conn,$item->link); > >$query1 = "SELECT * from feedtable "; >$result1= mysqli_query($conn, $query1); > >if ( mysqli_num_rows ($result1 ) > 0 ) >{ >echo "duplicate entry\n"; >} > >else >{ >$sql = "INSERT INTO feedtable (link)VALUES ('$item->link')"; >$result = mysqli_query($conn, $sql); > >if ($sql == true) >{ >echo "link added\n"; >} >} > >} >} >?> > >But only inserting one link from many links I done know why that’s >happen its suppose to insert all the links from the feeds. And if found > duplicate well "echo" otherwise well insert all the link. >The links are different from each other no duplicate on them. No, you're checking to see if $sql equates to true. In your code $sql is a string, and is always true. In the case of only one entry being added, have you at least checked to see what queries are being run? At a basic level, outputting the sql you're running would help. Thanks, Ash -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php