Есть кусок кода: PHP: <?phpwhile($row=mysql_fetch_array($rs)){ $id=$row['id']; for ($j=1; $j<=31; $j++){ $strSQL1 = "SELECT * FROM `table` where id=$id"; $rs1 = mysql_query($strSQL1); while ($row1=mysql_fetch_array($rs1)){ $hours=$row1['count']; } echo "<td><input type='text' name='count[$id][$j]' value='$hours' /></td>" ; $hours=''; }}?> Но при этом - бешенное количество запросов в БД. Как можно упростить? Есть мысль - выдернуть внутренний SELECT в массив и в цикле for работать с ним. Но знаний пока не хватает. Прошу помочь
ето ж для чего, а главное кто написал такое безжалостное чудовище? ) запрос из $strSQL1 сделать не в цикле for непонятно что в $rs и вопше неполный код
запрос из $strSQL1 сделать не в цикле for - это я понимаю, но не знаю как потом разобрать непонятно что в $rs - результат другого запроса PHP: $strSQL = "SELECT id, lastname,firstname FROM `another_table`";$rs = mysql_query($strSQL); А вообще в этом коде выбираются id из одной таблицы, для каждого из них цикл формирует переменные [1..31] и формируется таблица из инпутов, каждый инпут получает соответствующее имя count[$id][$j] и value, взятое из другой таблицы Вообще, это - редактируемая таблица, с которой уже мозг переломал полный код таблицы:
http://ru.wikipedia.org/wiki/Join_(SQL) Можно сделать один запрос, который объединит все необходимые данные в одном массиве. Уделите время изучению sql.
PHP: <?php $ListId = ''; while($row = mysql_fetch_array($rs)) { $id = $row['id']; $ListId .= $j . ','; } $strSQL1 = "SELECT * FROM `table` WHERE id IN (".trim($ListId, ",").")"; $rs1 = mysql_query($strSQL1); while ($row1 = mysql_fetch_array($rs1)) { //обработка полученного результата // // ... }