Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сделать запрос по результатам запроса / 10 сообщений из 10, страница 1 из 1
28.04.2016, 08:25
    #39226300
Сделать запрос по результатам запроса
Делаю запрос нагрузки преподов:

Код: php
1.
2.
$string_query = "SELECT * FROM `calculationhours` ORDER by lector";
$result = mysqli_query( $link, $string_query );



Мне нужно потом часы каждого препода закинуть в отдельную вкладку экселя.
В связи с этим у меня два вопроса:
- можно ли сделать запрос к результату $result и вывести уникальный список всех преподов.
- потом я собираюсь по этому списку пробежаться и вывести часы каждого препода, сделав опять-таки запрос с конкретной фамилией к результатам первого запроса $result . Можно ли так сделать (и как =) )

Вроде попадалась, что можно (но мне не было нужно). гугление дает только запрос внутри запроса.
...
Рейтинг: 0 / 0
28.04.2016, 08:27
    #39226301
Сделать запрос по результатам запроса
я могу конечно повесить флаг, и отслеживать появление новой фамилии. Но там у меня в реале сложнее выборка, запутался я в этих флагах на башнях.
...
Рейтинг: 0 / 0
28.04.2016, 09:05
    #39226319
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать запрос по результатам запроса
Удав Анакондаможно ли сделать запрос к результату $result результат - на стороне клиента, как ты собрался делать к нему запрос? запросы же сервер выполняет...
может, сразу выполнить нормальный запрос? с группировкой по лекторам и подсчётом часов.
...
Рейтинг: 0 / 0
28.04.2016, 14:28
    #39226669
Сделать запрос по результатам запроса
Нет, мне подсчет часов не нужен. Гроуп помешает, он же суммирует. Мне, по сути, нужно просто отдельные строки раскидать по разным вкладкам.

Строки определенного препода длятся на три вида - штат, совместительство, почасовые. Полученные группы нужно разбить на строки с очными и заочными группами. Полученные подгруппы делят на бюджет и договор. Т.е., например, в худшем случае создается аж 12 отдельных групп - и, соответственно, я их закидаю в 12 вкладок экселя.

Все соответсвующие поля ( штатность, очность, бюджет ) есть, сортировка нужная сделана. Такто на вид простая задача, но чо то муторновато с флагами )
...
Рейтинг: 0 / 0
28.04.2016, 14:32
    #39226672
Сделать запрос по результатам запроса
я конечно могу сначала сделать запрос на список уникальных преподов (например, 20 штук), потом с его помощью пробежать тройной цикл , итого наверно сделать 20*3*2*2 = 320 запросов в базу, но что-то мне подсказывает, что нехорошо так :)
...
Рейтинг: 0 / 0
28.04.2016, 17:22
    #39226874
Сделать запрос по результатам запроса
Лан наверно создам ассоциативный массив (ключ - препод) , и туда загружу выборку. Потом буду пробегаться по этому массиву массивов. Лисапед, короче
...
Рейтинг: 0 / 0
29.04.2016, 05:06
    #39227173
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать запрос по результатам запроса
Удав Анакондая конечно могу сначала сделать запрос на список уникальных преподов (например, 20 штук), потом с его помощью пробежать тройной цикл , итого наверно сделать 20*3*2*2 = 320 запросов в базу, но что-то мне подсказывает, что нехорошо так :)начешуя 320 запросов?
сделай запрос на преподов + запрос на всё
потом проходи по списку преподов и раскидывай данные из второго списка куда надо
...
Рейтинг: 0 / 0
29.04.2016, 08:49
    #39227210
Сделать запрос по результатам запроса
tanglirпотом проходи по списку преподов и раскидывай данные из второго списка куда надо
А как это сделать, непонятно... Вот допустим, такой результат
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
1 Иванов алгебра 	Штат Очка Бюджет 	120
2 Иванов геометрия 	Штат Очка Бюджет 	100

3 Иванов черчение 	Штат Очка Договор 	60
4 Иванов рисование 	Штат Очка Договор 	40

5 Иванов матан	 	Совм Очка Бюджет 	50
6 Иванов функан	 	Совм Очка Бюджет 	70

7 Иванов логика	 	Совм Очка Договор 	40

8 Иванов алгебра 	Совм ЗаОч Бюджет 	20

9 Иванов геометрия 	Совм ЗаОч Договор 	10


Это нужно раскидать в 6 разных вкладок... А с обычным массивом
Код: php
1.
2.
3.
4.
5.
$string_query = "SELECT * FROM `calculationhours` ORDER by lector";
$result = mysqli_query( $link, $string_query );	
while ($line = mysqli_fetch_ASSOC($result)) {
   ...
}


думаю, неудобно работать будет...По-моему, без вспомогательного массива не обойтись...
...
Рейтинг: 0 / 0
29.04.2016, 09:06
    #39227215
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать запрос по результатам запроса
Удав АнакондаЭто нужно раскидать в 6 разных вкладок...
Запрос должен вернуть все данные одним массивом. А клиент - разложить их по вкладкам.
Чтобы клиенту было проще, нужно организовать "удобную" сортировку данных, чтобы клиент имел возможность обработки данных потоком.
...
Рейтинг: 0 / 0
29.04.2016, 09:21
    #39227226
Сделать запрос по результатам запроса
Akina, так то да, сделал, типа
Код: php
1.
$string_query = "SELECT * FROM `calculationhours` ORDER by lector, Штат, Очка, Бюджет ";


ладно, вроде я додумался, как одним флагом обойтись )
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сделать запрос по результатам запроса / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]