[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Инсерт в базу Mysql и проверка на дубли
began
Здравствуйте,

на сайте делается поиск контента юзером,
контент парситься с партнерского сайта
и заноситься в базу (mysql) и сразу же выводиться

В базе две колонки title и link
Хотелось бы, что бы в базу заносился только свежий контент без дулей.

Подскажите , пожалуйста, что тут дописать что бы
перед INSERT в базу,
в самой базе проверялись на дубли линки в колонке `link`
Если в базе уже есть такой же линк то в базу не INSERTим.


Code:


// проверка если есть Переменная $title не пустая, то insert в базу
if ( $title != "" )
{
$q = "INSERT INTO `table` (`title`, `link`) VALUES
('
$title', '$link')";
mysql_query($q) or die(mysql_error());


// Вывод из базы то что было спарщено

$query = "SELECT * FROM `table` WHERE `link` LIKE '%" . $link . "%' LIMIT 0 , 30";
$sql = mysql_query($query) or die(mysql_error());

$table = "<table width=\"50%\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n";
while ($row = mysql_fetch_assoc($sql))
{
$table .= " {$row['id']}, {$row['title']}, {$row['link']}";
}
$table .= "</table>\n";
echo $table;
}




Спустя 11 минут, 43 секунды (10.08.2011 - 00:50) Winston написал(а):
Нафига делать проверку на дубли, проще поле link сделать уникальным, потом делать вставку, если запрос возвращает ошибку значит запись существует...

Спустя 2 минуты, 51 секунда (10.08.2011 - 00:53) neadekvat написал(а):
Цитата (began @ 10.08.2011 - 01:38)
Вывод из базы то что было спарщено

Меня аж передернуло.
Сграблено. А парсинг - это типа анализ текста, в таком случаи можно сказать "проанализировано". Но у тебя таки сграблено.

Что по теме - то перед записью в бд делай к ней же запрос.
Или банально поставь уникальный индекс на link и пиши INSERT IGNORE.

Спустя 17 минут (10.08.2011 - 01:10) began написал(а):
Цитата (neadekvat @ 9.08.2011 - 21:53)
Цитата (began @ 10.08.2011 - 01:38)
Вывод из базы то что было спарщено

Меня аж передернуло.
Сграблено. А парсинг - это типа анализ текста, в таком случаи можно сказать "проанализировано". Но у тебя таки сграблено.

Что по теме - то перед записью в бд делай к ней же запрос.
Или банально поставь уникальный индекс на link и пиши INSERT IGNORE.

поставил уникальный индекс на 'link'
подскажите где прописывать INSERT IGNORE

Спустя 4 минуты, 33 секунды (10.08.2011 - 01:14) Invis1ble написал(а):
INSERT IGNORE INTO `table`

Спустя 50 секунд (10.08.2011 - 01:15) neadekvat написал(а):
Цитата (began @ 10.08.2011 - 02:10)
подскажите где прописывать INSERT IGNORE

оО Вот по-любому спросил недумая.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.