Как надо
В приведённом выше примере можно применить объединение таблиц и избавиться от описанных недостатков.
$res = mysql_query("SELECT sites.id, url, sites.name as sitename, rubs.name as rubsname, rubs.id as rub_id FROM sites, rubs WHERE sites.rub=rubs.id и-какое-то-там-условие");
while ($row = mysql_fetch_array($res2)) {
echo "<a href=", $row["url"], ">", $row["sitename"], "</a>";
echo "(рубрика <a href=rub.phtml?id=", $row["rub_id"], ">";
echo $row["rubsname"], "</a><br>";
};
Итак, здесь лучше использовать запрос "SELECT sites.id, url, sites.name as sitename, rubs.name as rubsname, rubs.id as rub_id FROM sites, rubs WHERE sites.rub=rubs.id". Получается, что мы имеем готовый массив, заботимся о выводе только его элементов и пишем меньше кода.