2012-04-04 93 views
0

我有一个关于SQL的问题,我给出了一个小脚本,它从twitter获取人们对某人的意见,并将它插入到我的服务器的sql表上,代码运行良好,但我的问题是,如何能脚本跳过一个条目时它放在桌子上已经存在,所以它dosent插入几次相同的入口,这里是代码:如果SQL表上存在值跳过

<?php 
include '../config/config.php'; 
mysql_connect($dbhost, $dbuser, $dbpwrd) or die(mysql_error()); 
mysql_select_db($database) or die(mysql_error()); 

$rss = simplexml_load_file("http://search.twitter.com/search.rss?q=YaninGarciaD"); 
if($rss){ 
echo '<ul>'; 
foreach($rss->channel->item as $item){ 
      $author = (string) $item->author; // Title 
      $link = (string) $item->link; // Url Link 
      $description = (string) $item->description; 
      $pubDate = (string) $item->pubDate; //Description 

      list($usuario, $nombre3) = explode("@", $author);   
      list($basura, $nombre2) = explode(" (", $nombre3); 
      $nombre = substr($nombre2, 0, -1); 

      $piezasurl = explode("/", $link); 
      $status = $piezasurl[5]; 
      $piezasfecha = explode(" ", $pubDate); 

      if ($piezasfecha[2] == "Jan") { 
      $mes = "01"; 
      } elseif ($piezasfecha[2] == "Feb") { 
      $mes = "02"; 
      } elseif ($piezasfecha[2] == "Mar") { 
      $mes = "03"; 
      } elseif ($piezasfecha[2] == "Apr") { 
      $mes = "04"; 
      } elseif ($piezasfecha[2] == "May") { 
      $mes = "05"; 
      } elseif ($piezasfecha[2] == "Jun") { 
      $mes = "06"; 
      } elseif ($piezasfecha[2] == "Jul") { 
      $mes = "07"; 
      } elseif ($piezasfecha[2] == "Ago") { 
      $mes = "08"; 
      } elseif ($piezasfecha[2] == "Sep") { 
      $mes = "09"; 
      } elseif ($piezasfecha[2] == "Oct") { 
      $mes = "10"; 
      } elseif ($piezasfecha[2] == "Nov") { 
      $mes = "11"; 
      } elseif ($piezasfecha[2] == "Dic") { 
      $mes = "12"; 
      } 

      $fecha = $piezasfecha[3].'-'.$mes.'-'.$piezasfecha[1].' '.$piezasfecha[4]; 


mysql_query("INSERT INTO yg_mensajes 
(nombre, mensaje, twitter, url, postid, tipo, fecha, aprovado) 
VALUES ('$nombre', '$description', '$usuario', '$link', '$status', 2, '$fecha', 0) ") 
or die(mysql_error());    

echo '<li>'; 
echo $description.'<br />'; 
echo $usuario.'<br />'; 
echo $nombre.'<br />'; 
echo $link.'<br />'; 
echo $status.'<br />'; 
echo $fecha.'<br />'; 
echo '<br /></li>'; 

} 
echo '</ul>'; 
} 
?> 

关于Twitter的一个好处是,帖子数(在此代码中,变量$状态)是唯一的,即不应在表格之前的变量

您可以在这里的行动看到剧本: http://www.yaningarcia.com/unete/test.php

我的SQL表结构是这样的一个:

CREATE TABLE `yg_mensajes` (
    `id` int(11) NOT NULL auto_increment, 
    `nombre` text, 
    `mensaje` text, 
    `twitter` text, 
    `url` text, 
    `postid` text, 
    `tipo` int(11) default NULL, 
    `fecha` datetime default NULL, 
    `aprovado` int(11) default NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

谢谢! :D

+1

几个指针关于你的代码。使用pdo而不是mysql_ *函数。第二,如果你看到有太多的其他情况,请使用开关盒。 – itachi 2012-04-04 07:05:56

回答