更新数据库中的 RSS 提要

发布于 2024-12-13 13:40:29 字数 1266 浏览 0 评论 0原文

我正在读取并将 RSS 提要存储在我的数据库中。我正在使用此代码

    <?php
      include_once 'db.php';
       $homepage = file_get_contents('http://rss.cnn.com/rss/edition_us.rss');

         $movies = new SimpleXMLElement($homepage);
          foreach($movies->channel->item as $opt){
            $title= $opt->title;
        $tittle=mysql_real_escape_string($title);
           $link=$opt->link;
           $links=mysql_real_escape_string($link);
           $des=$opt->description;
            $dess=mysql_real_escape_string($des);

           $sql="INSERT INTO store_feed (title, link, description)
             VALUES ('$tittle','$links','$dess')";

            $result=mysql_query($sql) or die('Error, insert query failed');
             }


              ?>

,表结构是

store_feed 的表结构,

 CREATE TABLE IF NOT EXISTS `store_feed` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL,
    `link` varchar(200) NOT NULL,
      `description` varchar(500) NOT NULL,
     `feedburner` varchar(200) NOT NULL,
     PRIMARY KEY (`id`)
       ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

现在我的要求是,如果链接相同,则插入新记录,然后更新仅此字段的标题和描述,无需再次插入记录。 换句话说,如果链接相同,我想停止重复数据。

I'm reading and store a RSS feed in my database.I'm using this code

    <?php
      include_once 'db.php';
       $homepage = file_get_contents('http://rss.cnn.com/rss/edition_us.rss');

         $movies = new SimpleXMLElement($homepage);
          foreach($movies->channel->item as $opt){
            $title= $opt->title;
        $tittle=mysql_real_escape_string($title);
           $link=$opt->link;
           $links=mysql_real_escape_string($link);
           $des=$opt->description;
            $dess=mysql_real_escape_string($des);

           $sql="INSERT INTO store_feed (title, link, description)
             VALUES ('$tittle','$links','$dess')";

            $result=mysql_query($sql) or die('Error, insert query failed');
             }


              ?>

and table structure is

Table structure for table store_feed

 CREATE TABLE IF NOT EXISTS `store_feed` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL,
    `link` varchar(200) NOT NULL,
      `description` varchar(500) NOT NULL,
     `feedburner` varchar(200) NOT NULL,
     PRIMARY KEY (`id`)
       ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

now my requirement is when insert a new record if link is same then update only title and description of this field without insert record again.
in other word I want to stop duplicate data if link is same.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

那片花海 2024-12-20 13:40:29

通常,我会这样做:

警告:未经测试的代码!

$sql = "SELECT id FROM store_feed WHERE link = '$links' LIMIT 1";
$rs = mysql_query($sql) or die( mysql_error() );
if( mysql_num_rows($rs) > 0)//we got link
{
    $r = mysql_fetch_array($rs);
    $id = $r['id'];
    $sql = "UPDATE store_feed SET title = '$title', description = '$dess' WHERE id = '$id'";
    mysql_query($sql) or die( mysql_error() );
} else {
    $sql = "INSERT INTO store_feed (title, link, description) VALUES ('$tittle','$links','$dess')";
    mysql_query($sql) or die( mysql_error() );
}

Usually, I do something like this:

WARNING: UNTESTED CODE!

$sql = "SELECT id FROM store_feed WHERE link = '$links' LIMIT 1";
$rs = mysql_query($sql) or die( mysql_error() );
if( mysql_num_rows($rs) > 0)//we got link
{
    $r = mysql_fetch_array($rs);
    $id = $r['id'];
    $sql = "UPDATE store_feed SET title = '$title', description = '$dess' WHERE id = '$id'";
    mysql_query($sql) or die( mysql_error() );
} else {
    $sql = "INSERT INTO store_feed (title, link, description) VALUES ('$tittle','$links','$dess')";
    mysql_query($sql) or die( mysql_error() );
}
南风几经秋 2024-12-20 13:40:29

在将每个提要插入数据库之前,只需检查数据库中是否存在标题和描述,如果不存在,则将该行插入数据库中。

http://www.exceptionhandle.com

Before you inserting every feed into database just check title and description exist in database if not exist insert that row into database.

http://www.exceptionhandle.com

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文