1
PHP / Averiguar si existe comentario en BD procedentes de un feed externo
« en: 06 de Noviembre de 2013, 12:09:53 pm »
Buenas, tengo una duda, cómo puedo comprovar si existe en una tabla de mi BD comentarios que me llegan desde un feed externo.
Lo que quiero hacer es un script en php, que compruebe si hay algún comentario que ya exista en la tabla y en ese caso, no insertarlo, adjunto el script, ando un poco perdido, no se si podría usar alguna cláusula where, lo que pasa es que no puedo hacer la comparación con nada, porque no puedo acceder a la tabla en la que están almacenados los datos que me llegan y hacer la comparación con el comentario en texto me parece una mala idea, ya que pueden haber dos comentarios iguales, de personas distintas.
Este es el script:
Saludos y espero que esto no sea muy obvio. Gracias.
Lo que quiero hacer es un script en php, que compruebe si hay algún comentario que ya exista en la tabla y en ese caso, no insertarlo, adjunto el script, ando un poco perdido, no se si podría usar alguna cláusula where, lo que pasa es que no puedo hacer la comparación con nada, porque no puedo acceder a la tabla en la que están almacenados los datos que me llegan y hacer la comparación con el comentario en texto me parece una mala idea, ya que pueden haber dos comentarios iguales, de personas distintas.
Este es el script:
Código: [Seleccionar]
<?php require('includes/application_top.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>importador de comentarios de productos de ekomi</title>
</head>
<body>
<?php
$opinions = file_get_contents('URL del feed');
//var_dump($opinions);
//Guarda por cada línea hasta el primer espacio siempre que no esté dentro de una cadena.
preg_match_all('~(.*)\s+~',$opinions,$opinionsAux2);
//var_dump($opinionsAux2);
$opinions = $opinionsAux2[0];
//var_dump($opinions);
//exit();
foreach($opinions as $opinion){
$opinion = explode(',',$opinion);
$opinion[4] = str_replace("'",'',$opinion[4]);
$opinion[5] = str_replace("'",'',$opinion[5]);
$opinion[6] = str_replace("'",'',$opinion[6]);
$opinion[7] = str_replace("'",'',$opinion[7]);
//echo trim($opinion[0]).' '. $opinion[1]. ' '.trim($opinion[2]).' '.trim($opinion[3]).' '.str_replace('"','',$opinion[4].$opinion[5].$opinion[6]).'<br/>';
//exit();
$total = mysql_num_rows(mysql_query("SELECT id FROM `mi_BD`.`ekomi-productos` WHERE id='$variable'"));
if($total==0){
tep_db_query("INSERT INTO `mi_BD`.`ekomi-productos` (
`id` ,
`tiempo` ,
`id_pedido` ,
`id_producto` ,
`estrellas` ,
`opinion`
)
VALUES (
NULL, '".trim($opinion[0])."', '".$opinion[1]."', '".trim($opinion[2])."', '".trim($opinion[3])."', '".str_replace('"','',$opinion[4].$opinion[5].$opinion[6].$opinion[7])."'
);");
echo 'Nuevos comentarios de ekomi insertados';
}else{
echo 'No hay nuevos comentarios para insertar en BD';
}
}
?>
</body>
</html>
Saludos y espero que esto no sea muy obvio. Gracias.