Цикл с менющейся переменной

123
S
На сайте с 30.09.2016
Offline
469
#11
HEMASTER:
Если вы не можете осознать элементарные вещи, то не пишите здесь, потому что помощи нет, а глупые, вводящие в заблуждение всех, вопросы есть.

Если хотите получить помощь, то ставьте осмысленные условия, а не всякую ахинею. Написать нормальный код для той задачи, что Вы поставили - как два пальца об асфальт, только сама задача абсолютно глупая и бестолковая.

$db = mysql_connect ("localhost","xxx","73sk8pkF");
mysql_select_db ("xxx",$db);
mysql_query('SET NAMES cp1251');

$result = mysql_query ("SELECT ID,post_content FROM wp_posts WHERE post_author = '3' AND post_status = 'publish'",$db);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){$myrow[] = $row;}

$sites = array(
"http://11.ru/",
"http://22.ru/"
);

foreach ( $sites as $site ) {
foreach ( $myrow as $arr ) {
if (!strpos($arr['post_content'], 'mylink'))
{
$arr['post_content'] = $arr['post_content'].'<p>Источник: <a href="'.$site.'" class="mylink">'.$site.'</a></p>';
mysql_query ("UPDATE wp_posts SET post_content = ".$arr['post_content']." WHERE ID = ".$arr['ID'],$db);
break;
}
}
}
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
HR
На сайте с 22.08.2010
Offline
94
#12
Sitealert:
Если хотите получить помощь, то ставьте осмысленные условия, а не всякую ахинею. Написать нормальный код для той задачи, что Вы поставили - как два пальца об асфальт, только сама задача абсолютно глупая и бестолковая.
$db = mysql_connect ("localhost","xxx","73sk8pkF");
mysql_select_db ("xxx",$db);
mysql_query('SET NAMES cp1251');

$result = mysql_query ("SELECT ID,post_content FROM wp_posts WHERE post_author = '3' AND post_status = 'publish'",$db);
$myrow = mysql_fetch_array ($result);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){$myrow[] = $row;}

$sites = array(
"http://11.ru/",
"http://22.ru/"
);

foreach ( $sites as $site ) {
foreach ( $myrow as $arr ) {
if (!strpos($arr['post_content'], 'mylink'))
{
$arr['post_content'] = $arr['post_content'].'<p>Источник: <a href="'.$site.'" class="mylink">'.$site.'</a></p>';
mysql_query ("UPDATE wp_posts SET post_content = ".$arr['post_content']." WHERE ID = ".$arr['ID'],$db);
break;
}
}
}

не работает...

В массиве $myrow находится 2 элемента ID и post_content одной записи. Поэтому наверно не работает. Не хватает цикла перебора статей.

S
На сайте с 30.09.2016
Offline
469
#13
HEMASTER:
В массиве $myrow находится 2 элемента ID и post_content одной записи.

В массиве $myrow находятся все записи, которые принадлежат одному автору под номером 3.

Когда я копировал Ваш код для экономии времени, забыл выкинуть оттуда лишнюю строку. Почему и написал: "лучше бы ничего не писали". Правильно так

$result = mysql_query ("SELECT ID,post_content FROM wp_posts WHERE post_author = '3' AND post_status = 'publish'",$db);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){$myrow[] = $row;}
HR
На сайте с 22.08.2010
Offline
94
#14
Sitealert:
В массиве $myrow находятся все записи, которые принадлежат одному автору под номером 3.

Что то тут не так , потому что если добавить для проверки в цикл:

echo $myrow[0]."<br />";

echo $myrow[1]."<br />";

то выведутся 2 раза id и текст одной записи. Не хватает цикла перебора самих статей мне кажется.

---------- Добавлено 24.12.2016 в 13:16 ----------

---------- Добавлено 24.12.2016 в 13:17 ----------

все равно не работает.

S
На сайте с 30.09.2016
Offline
469
#15

У Вас в БД что ли одна статья с post_author = '3'?

---------- Добавлено 24.12.2016 в 13:27 ----------

HEMASTER:
если добавить для проверки в цикл:
echo $myrow[0]."<br />";
echo $myrow[1]."<br />";
Массив проверяется так: print_r($myrow);
HR
На сайте с 22.08.2010
Offline
94
#16
Sitealert:
У Вас в БД что ли одна статья с post_author = '3'?

---------- Добавлено 24.12.2016 в 13:27 ----------

Массив проверяется так: print_r($myrow);

В ДБ у автора 3 находится 3 статьи.

S
На сайте с 30.09.2016
Offline
469
#17
HEMASTER:
В ДБ у автора 3 находится 3 статьи.

Значит, и в $myrow должно быть три элемента.

HR
На сайте с 22.08.2010
Offline
94
#18

добавил для проверки в цикл echo $arr['post_content']; все нормально .. к тексту прибавилась ссылка, но почему то в базу не записывается. Может здесь проблема?

mysql_query ("UPDATE wp_posts SET post_content = ".$arr['post_content']." WHERE ID = ".$arr['ID'],$db);

Изменил на

mysql_query ("UPDATE wp_posts SET post_content = '$arr[post_content]' WHERE ID = '$arr[ID]'",$db);

Но почему то только в одну статью добавилась одна ссылка.

S
На сайте с 30.09.2016
Offline
469
#19

Когда идёт кодинг "по переписке", проблема может быть в чём угодно. Выведите print_r($myrow); перед циклами, чтобы понять, какой массив идёт на обработку.

У меня цейтнот, если до вечера никто не поможет, вернусь вечером.

HR
На сайте с 22.08.2010
Offline
94
#20
Sitealert:
Когда идёт кодинг "по переписке", проблема может быть в чём угодно. Выведите print_r($myrow); перед циклами, чтобы понять, какой массив идёт на обработку.

Array ( [0] => Array ( [ID] => 9763 [post_content] => текст 1 ) [1] => Array ( [ID] => 9765 [post_content] => текст 2 ) [2] => Array ( [ID] => 9767 [post_content] => текст 3 ) ) Array ( [0] => Array ( [ID] => 9763 [post_content] => текст 1 ) [1] => Array ( [ID] => 9765 [post_content] => текст 2 ) [2] => Array ( [ID] => 9767 [post_content] => текст 3 ) )

---------- Добавлено 24.12.2016 в 13:58 ----------

В общем этот скрипт за одно срабатывание добавляет второй домен из массива в одну статью, если снова запустить скрипт, он добавит этот же домен во вторую статью, и потом в третюю

123

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