Ich habe eine Frage bezüglich SQL, gab ich ein kleines Skript, das von Twitter bekommt, was Leute über jemanden sagen und es auf einem SQL-Tabelle von meinem Server einfügen, funktioniert der Code gut, aber meine Frage ist, wie kann das Skript einen Eintrag überspringen, wenn es bereits auf dem Tisch vorhanden ist, so dosent es mehrmals den gleichen Eintrag einfügen, hier ist der Code:Überspringen, wenn Wert existiert in SQL-Tabelle
<?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>';
}
?>
eine gute Sache über twitter ist, dass die Postnummer (In diesem Code ist die Variable $ Status) ist eindeutig, das ist die Var, die nicht in der Tabelle sein sollte vor
Sie können das Skript in Aktion sehen hier: http://www.yaningarcia.com/unete/test.php
My SQL Tabellenstruktur ist diese:
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 ;
Dank !! : D
ein paar Hinweise aktualisieren. Verwenden Sie pdo anstelle von mysql_ * -Funktionen. 2. Ist, wenn Sie sehen, dass es zu viel elseif gibt, verwenden Sie switch-case. – itachi