Помогите дописать скрипт плз)

[Удален]
488

Я начал писать себе скрипт по проверке бэклинков, а именно: я размещаю свои статьи на сайте товарища, и потом с помощью скрипта проверяю наличие моих ссылок на его сайте..

Объясню подробнее:

я создаю 2 таблицы в базе:

1. SITES:

id | link

1 | mail.ru

2 | ya.ru

где: link - урл сайта, который я должен искать в качестве бэклинка

2. LINKS

id | site_id | link | find

1 | 2 | mysite.ru/news/id5454454 | 1

где: site_id - связь м/у таблицами, то есть на странице mysite.ru/news/id5454454 мне нужно найти ссылку на сайт ya.ru

поле find, принимает значение 1 если ссылка найдена и 0 если не найдена

вот, дальше.. я создаю все формы для автоматизации - добавление/редактирование/удаление, остаётся дело только за проверкой..

по идее должно быть как: скрипт заходит на страницу mysite.ru/news/id5454454 и проверяет на ней наличие каждой из ссылок из таблицы SITES. у меня получается выполнить проверку всех ссылок из таблицы LINKS таким образом:

	$site = 'http://www.mail.ru';

$query = "SELECT * FROM links WHERE 1";
$res = mysql_query( $query );
while( $lnk = mysql_fetch_array( $res ) ) {
$page = file_get_contents($lnk['slink']);
$id = $lnk['id'];
if ( strpos ( $page, $site ) === false )
{
echo '0';
$res0 = mysql_query ("UPDATE links SET find='0' WHERE id='$id'");
}
else
{
$res1 = mysql_query ("UPDATE links SET find='1' WHERE id='$id'");
echo '1';
}
}

но здесь я проверяю только наличие одной ссылки: $site = 'http://www.mail.ru';

Что мне нужно дописать, чтобы проверялось наличие всех ссылок? Понимаю что здесь совсем немного осталось, но доделать не получается...

Пробовал ещё вот так:

$query1 = "SELECT * FROM sites WHERE 1"; 

$reslt = mysql_query( $query1 );
while( $st = mysql_fetch_array( $reslt ) )
{
$sites = $st['link'];

$query = "SELECT * FROM links WHERE 1";
$res = mysql_query( $query );
while( $lnk = mysql_fetch_array( $res ) )
{
$page = file_get_contents($lnk['slink']);
$id = $lnk['id'];
if ( strpos ( $sites, $page ) === false )
{
echo '0';
$res0 = mysql_query ("UPDATE links SET find='0' WHERE id='$id'");
}
else
{
echo '1';
$res1 = mysql_query ("UPDATE links SET find='1' WHERE id='$id'");
}
}
}

но это бяка какая-то... цикл в цикле и совсем не то выдаёт...

Поможите а?:)

crapa
На сайте с 27.05.2008
Offline
56
#1

Не совсем понял схему (можете в почту или личку сбросить дамп базы с парой строчек), а так - посмотрите в сторону foreach

[Удален]
#2

вопрос решён - огромная благодарность to crapa

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий