|
|
|
| как мне уменьшить число запрсов к базе
вот код
echo "<b>Мои Друзья</b><hr>";
$sql = "SELECT * FROM ".$prefix."_myfriends_friends WHERE id='$id'";
$result = $db->sql_query($sql);
$cont = 0;
$tdwidth = intval(100/$tabcolumn);
echo "<center><table border=\"0\" cellspacing=\"0\" cellpadding=\"6\"><tr><td valign=\"top\" width=\"".$tdwidth."%\">";
while ($row = $db->sql_fetchrow($result)) {
$friend = $row["friend_id"];
$sql2 = "SELECT * FROM ".$prefix."_myfriends WHERE id='$friend'";
$result2 = $db->sql_query($sql2);
$row = $db->sql_fetchrow($result2);
echo "<center><a href=\"modules.php?name=$module_name&op=friend&user_id=$friend\"><img src='modules/MyFriends/foto/img.php?file=".$row["foto"]."' border='0'></a><br><b>".$row["nik"]."</b> (".$row["age"].")";
$cont++;
if ($cont < $tabcolumn) { echo "</td><td valign=\"top\" width=\"".$tdwidth."%\">"; }
if ($cont == $tabcolumn) { echo "</td></tr><tr><td valign=\"top\" width=\"".$tdwidth."%\">"; $cont = 0; }
}
echo "</td></tr></table></center>";
|
как можно эти 2 запроса обьеденить | |
|
|
|
|
|
|
|
для: gurza
(11.10.2005 в 16:03)
| | Очень похоже на рекурсивный спуск.
А что должен этот код делать? | |
|
|
|
|
|
|
|
для: gurza
(11.10.2005 в 16:03)
| | этот запрос
$sql = "SELECT * FROM ".$prefix."_myfriends_friends WHERE id='$id'";
$result = $db->sql_query($sql);
$cont = 0;
$tdwidth = intval(100/$tabcolumn);
echo "<center><table border=\"0\" cellspacing=\"0\" cellpadding=\"6\"><tr><td valign=\"top\" width=\"".$tdwidth."%\">";
while ($row = $db->sql_fetchrow($result)) {
$friend = $row["friend_id"];
|
выбирает из базы всех юзеров у которых id=$id
а этот запрос уже с другой таблицы по id юзера выбирает инфу о нем
foto,age,nik
$sql2 = "SELECT * FROM ".$prefix."_myfriends WHERE id='$friend'";
$result2 = $db->sql_query($sql2);
$row = $db->sql_fetchrow($result2);
|
проблема в том что чем больше юзеров тем больше запросов к базе
как избежать этого? | |
|
|
|
|
|
|
|
для: gurza
(11.10.2005 в 22:54)
| | Приведите плиз структуру таблиц - у нас их нет перед глазами, поэтому сложно сориентироваться - скорее всего можно воспользоваться многотабличным запросом. | |
|
|
|
|
|
|
|
для: cheops
(11.10.2005 в 23:48)
| | спасибо за помощ но уже сам разобрался
и вот как это выглидит
echo "<b>Мои Друзья</b><hr>";
$result = $db->sql_query(" SELECT p.id, p.friend_id, c.id, c.foto, c.age, c.nik
FROM ".$prefix."_myfriends_friends as p
LEFT JOIN ".$prefix."_myfriends as c on (p.id=c.id)
WHERE p.friend_id='$id'");
$cont = 0;
$tdwidth = intval(100/$tabcolumn);
echo "<center><table border=\"0\" cellspacing=\"0\" cellpadding=\"6\"><tr><td valign=\"top\" width=\"".$tdwidth."%\">";
while ($row = $db->sql_fetchrow($result)) {
echo "<center><a href=\"modules.php?name=$module_name&op=friend&user_id=$row[id]\"><img src='modules/MyFriends/foto/img.php?file=".$row["foto"]."' border='0'></a><br><b>".$row["nik"]."</b> (".$row["age"].")";
$cont++;
if ($cont < $tabcolumn) { echo "</td><td valign=\"top\" width=\"".$tdwidth."%\">"; }
if ($cont == $tabcolumn) { echo "</td></tr><tr><td valign=\"top\" width=\"".$tdwidth."%\">"; $cont = 0; }
}
echo "</td></tr></table></center>";
|
| |
|
|
|
|
|
|
|
для: gurza
(12.10.2005 в 23:10)
| | а можно ли в этот запрос добавить еше запрс в третью таблицу
там будет nik из таблици 2 = uname из таблици 3
вот таблица 3
uname___host_adr
gurza____127.0.0.1
muha____127.0.0.1
|
| |
|
|
|