Можно ли в цикле делать выборку? Чтобы на каждом выполнении цикла делать новую выборку. Вот мой код: Код (PHP): $viborka1 = "SELECT g_admin FROM users WHERE (g_admin=id)"; if (!$result1 = mysql_query($viborka1, $db)){ echo "<br>Не могу выполнить запрос 1<br>"; exit(); } while ($row1 = mysql_fetch_array($result1, MYSQL_BOTH)){ $viborka2 = " SELECT gr.g_fcast, gr.g_fres , ag.team_winner FROM group_$row1[g_admin] gr JOIN archive_games ag ON (gr.g_fcast = ag.id) "; if (!$result2 = mysql_query($viborka2, $db)){ echo "<br>Не могу выполнить запрос 2<br>"; exit(); } $group_wins = 0; $group_loses = 0; while ($row2 = mysql_fetch_array($result2, MYSQL_BOTH)){ if ($row2["g_fres"]=="1"AND $row2["team_winner"] =="1"){ $group_wins = $group_wins+1; } if ($row2["g_fres"]=="2"AND $row2["team_winner"] =="2"){ $group_wins = $group_wins+1; } if ($row2["g_fres"]=="1"AND $row2["team_winner"] =="2"){ $group_loses = $group_loses+1; } if ($row2["g_fres"]=="2"AND $row2["team_winner"] =="1"){ $group_loses = $group_loses+1; } } echo "<br>У группы № $row1[g_admin] : $group_wins - WINS и $group_loses - LOSES<br>" ; mysql_free_result($result2); } Надеюсь по коду понятно что он выполняет.
можно в цикле. а можно и одним запросом сразу выбрать и сгруппировать. нужно смотреть как все организовано в бд. какие есть связи.
Я не придумал решения организовать данные со всех групп в одной таблице,поэтому когда пользователь создает группу, то в БД создается новая группа вида group_(id пользователя) . А в этом коде, я в цикле перебираю все группы(то есть таблицы), и для каждой группы создается своя, новая выборка. С удовольствием приму варианты создания одной выборки для всех существующих таблиц.
Согласен на счет этого с вами, когда начинал создавать группы, еще плохо был знаком с аспектами выборки, но уже слишком поздно менять структуру =) (хотя было бы правильней) У меня будет групп 20-30 , а переписывать 22 уже написанных php файла будет проблематично. Вот я и спросил про нагрузку системы, которая итак на соплях держится.
незнаю что вы хотите услышать? естественно пара запросов лучше чем 30. но т.к. запросы простые у вас, то думаю работает это быстро. или уже сейчас большая задержка? но раз все равно нехотите переделывать, то оставляйте так. работать будет, куда оно денется.
Пока все стоит на локальном сервере, задержки не чувствуется. Менять нечего не буду. Надеюсь не сломается) Я создавал тему с вопросом, можно ли сделать выборку из всех этих таблиц проще чем у меня. Например возможна ли реализация такая: В цикле добавлять к следующей выборке JOIN'ом все таблицы ? Но если такая реализация выйдет то будет 20-30 JOIN'ов. Или лучше забить?
я бы забил. ибо если улучшать, то кардинально - менять принцип хранения групп. т.е. все группы в одной таблице. тогда и запросы упростятся и быстрее все это станет работать. а так, много возни, а результат почти не изменится. смысла не вижу.