Как переместить второй запрос внутрь цикла?

alexmark5

Как переместить второй запрос внутрь цикла???
$res = mysql_query("SELECT `name` FROM `log_t` WHERE `ip` = '".$ip."'  ");
while ($row = mysql_fetch_array($res)) {
$rowname = $row['name'];
}
 
//$row имеет несколько значений name(например: name1 = www1, name2 = www2 и т.д.)
 
$sql444 = mysql_query("SELECT `id`, `url`, `name` FROM log_t2 WHERE  `name` != '$rowname'   ");   
    $row4 = mysql_fetch_array($sql444);
    $url4 = $row4['url'];
3 ответа

alexmark5

Еще раз, пожалуйста: что? куда? зачем?


alexmark5

Запросы в цикле это плохая практика. Гораздо лучше будет если вы соберете все значения в массив и исключите их потом во втором запросе. Примерно так:
<?
$res = mysql_query("SELECT `name` FROM `log_t` WHERE `ip` = '".$ip."'  ");
$rownames = array();
while ($row = mysql_fetch_array($res)) {
$rownames[] = $row['name'];
}
 
//$row имеет несколько значений name(например: name1 = www1, name2 = www2 и т.д.)
$sql444 = mysql_query("SELECT `id`, `url`, `name` FROM log_t2 WHERE `name` NOT IN ('".implode(",", $rownames)."')   ");   
$row4 = mysql_fetch_array($sql444);
$url4 = $row4['url'];
?>
Так как выборка идет из двух разных таблиц, то еще лучше будет сделать выборку с помощью какого-нибудь JOIN и в одном запросе. Правда ни структуру таблиц, ни итог нужный я не знаю, поэтому пример запроса затрудняюсь привести.


alexmark5

Как переместить второй запрос внутрь цикла???
$res = mysql_query("SELECT `name` FROM `log_t` WHERE `ip` = '".$ip."'  ");
while ($row = mysql_fetch_array($res)) {
$rowname = $row['name'];
}
 
//$row имеет несколько значений name(например: name1 = www1, name2 = www2 и т.д.)
 
$sql444 = mysql_query("SELECT `id`, `url`, `name` FROM log_t2 WHERE  `name` != '$rowname'   ");   
    $row4 = mysql_fetch_array($sql444);
    $url4 = $row4['url'];
Я же вам писал в другой вашей теме - необходимо поместить его внутрь операторных скобок {} цикла while