1 (изменено: Hanut, 2010-03-25 19:44:41)

Тема: Помогите с циклом

Здравствуйте, уважаемые знатоки smile

есть скрипт, который парсит страничку, id ссылки должен подставляться из базы данных пользователей.
подключаемся к базе
подставляем idp (первого пользователя) в ссылку для парсинга
парсим ссылку
загоням результаты в переменные
записываем полученные данные в базу (за счет обновления старых)
---------конец первого цикла------
пауза 4 секунды
--------начало второго прохода------
подставляем idp (второго пользователя) в ссылку для парсинга
парсим ссылку
загоням результаты в переменные

...и т.д. пока есть пользователи в базе

никак не могу сделать этот цикл, если не сложно, помогите пожалуйста
вот как я сделал это все:

<?php
/*Соединяемся с базой*/
if (isset($_GET['idp'])) {$idp = $_GET['idp'];}
if (isset($_POST['bu ']))  {$bu = $_POST['bu'];} 
if (isset($_POST['bo']))   {$bo = $_POST['bo'];}
if (isset($_POST['eu']))   {$eu = $_POST['eu'];}
if (isset($_POST['eo']))   {$eo = $_POST['eo'];}
if (isset($_POST['pu']))   {$pu = $_POST['pu'];} 
if (isset($_POST['po']))   {$po = $_POST['po'];} 
if (isset($_POST['vpistolu']))   {$vpistolu = $_POST['vpistolu'];}
if (isset($_POST['vpistolo']))   {$vpistolo = $_POST['vpistolo'];}
if (isset($_POST['vgrenu']))  {$vgrenu = $_POST['vgrenu'];} 
if (isset($_POST['vgreno']))  {$vgreno = $_POST['vgreno'];} 
if (isset($_POST['vavtou']))   {$vavtou = $_POST['vavtou'];}
if (isset($_POST['vavtoo']))   {$vavtoo = $_POST['vavtoo'];}
if (isset($_POST['vpulu']))   {$vpulu = $_POST['vpulu'];}
if (isset($_POST['vpulo']))   {$vpulo = $_POST['vpulo'];}
if (isset($_POST['vdrobu']))  {$vdrobu = $_POST['vdrobu'];} 
if (isset($_POST['vdrobo']))  {$vdrobo = $_POST['vdrobo'];} 
if (isset($_POST['vsnipu ']))   {$vsnipu = $_POST['vsnipu'];}
if (isset($_POST['vsnipo ']))   {$vsnipo = $_POST['vsnipo'];}

$result = mysql_query ("SELECT id, idp FROM ratings");
$myrow = mysql_fetch_array($result); // Лишняя строка.
while ($myrow = mysql_fetch_array($result)) {
$idp = $myrow["idp"]; 
$html = file_get_contents('http://www.ganjawars.ru/info.php?id='.$idp);
preg_match_all ('|<font color=#990000>(\d+.+)\((.*?)\)|', $html, $ma);
preg_match_all ('|<b>(\d+.+)\((.*?)\)|', $html, $maa);
 
 
list($f, $bu, $eu, $pu)=$maa[1];
list($ff, $bo, $eo, $po)=$maa[2];
list($vpistolu, $vgrenu, $vavtou, $vpulu, $vdrobu, $vsnipu)=$ma[1];
list($vpistolo, $vgreno, $vavtoo, $vpulo, $vdrobo, $vsnipo)=$ma[2];
 
if ( isset($bu) && isset($bo) && isset($eu)&& isset($eo) && isset($pu)&& isset($po) && isset($vpistolu)&& isset($vpistolo) && isset($vgrenu)&& isset($vgreno) 
&& isset($vavtou)&& isset($vavtoo)&& isset($vpulu)&& isset($vpulo)&& isset($vdrobu)&& isset($vdrobo)&& isset($vsnipu)&& isset($vsnipo)&& isset($vsnipo)&& isset($vsnipo))
{

// Здесь надо другую переменную использовать, $result находится в while.
$result = mysql_query ("UPDATE ratings SET bu='$bu', bo='$bo',eu='$eu',eo='$eo',pu='$pu', po='$po',vpistolu='$vpistolu', vpistolo='$vpistolo',vgrenu='$vgrenu', vgreno='$vgreno',vavtou='$vavtou', vavtoo='$vavtoo',vpulu='$vpulu', vpulo='$vpulo',vdrobu='$vdrobu',vdrobo='$vdrobo',vsnipu='$vsnipu',vsnipo='$vsnipo' WHERE idp='$idp'");
sleep(4);
 
if ($result == 'true') {echo "<p>Все отлично</p>";}
else {echo "<p>Нифига</p>";}
}
else {echo "<p>Вы заполнили не все поля, изменения не будут сохранены.</p>";}

} 
?>

У меня обновляется только одна запись(

2

Re: Помогите с циклом

Прописал в коде два комментария.

3

Re: Помогите с циклом

Точно, спасибо большое smile