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