echo '<img src="images/todelete.png" alt="Удалить" border="0"></a> '; echo '<a href="?item_id=' . $tmpval['id'] . '&type=edit" title="Правка"> <img src="images/toupdate.png" alt="Правка" border="0"></a></td>'; } $i++; echo '<td width="30"> ' . color_mark($q, $tmpval['num']) . '</td>'; $date_text = DateTimeCustomConvert($tmpval['date_text'], 'd', 'mysql2rus'); echo '<td width="60" valign=top> '; if (!isset($_GET['save']) && !isset($_GET['print'])) { echo '<a href="?item_id=' . $tmpval['id'] . '&type=view" title="просмотреть">' . color_mark($q, $date_text) . '</a>'; } else { echo $date_text; } echo '</td>'; $tmpval['program_content'] = str_replace("\n", "<br>", $tmpval['program_content']); echo '<td width="*">' . color_mark($q, $tmpval['program_content']) . ' </td>'; if (!isset($_GET['save']) && !isset($_GET['print'])) { echo '<td class="notinfo">'; //выборка на контроле--------------------------------------------------------------- // <abarmin date="23.09.2012"> // ошибка undefined variable search_query $query_control = "SELECT protocol_details.id as details_id,protocol_details.section_id,protocol_details.text_content,\n\t\t\t \tkadri.fio_short FROM protocol_details \n\t\t\t \tleft join kadri on kadri.id=protocol_details.kadri_id \n\t\t\twhere protocol_id='" . $tmpval['id'] . "' and on_control=1 "; if (isset($search_query)) { $query_control .= $search_query; } $query_control .= " order by section_id,kadri_id ASC limit 0,20"; // </abarmin> //echo $query_control; $res_control = mysql_query($query_control); while ($a_control = mysql_fetch_array($res_control)) { echo '' . $a_control['section_id'] . ' <b>' . $a_control['fio_short'] . '</b> ' . substr($a_control['text_content'], 0, strpos($a_control['text_content'], ' ', 40)) . '' . '<a href="?item_id=' . $tmpval['id'] . '&type=edit#detailsId_' . $a_control['details_id'] . '" title="перейти к пункту для правки"> <b>... -></b></a><br style="font-size:2pt;"><br style="font-size:2pt;">';
<img src="images/toupdate.png" alt="Правка" border="0"></a></td>'; } $i++; echo '<td> ' . ($i + ($page - 1) * $pgVals) . '</td>'; echo '<td> <a href="lect_anketa.php?kadri_id=' . $tmpval['fio_id'] . '&action=update" title="в анкету преподавателя">' . color_mark($q, $tmpval['fio']) . '</a></td>'; echo '<td> ' . color_mark($q, $tmpval['dolgnost']) . '</td>'; echo '<td> ' . color_mark($q, $tmpval['trip_count']) . '</td>'; $date_start = DateTimeCustomConvert(substr($tmpval['date_start'], 0, 10), 'd', 'mysql2rus'); echo '<td> ' . color_mark($q, $date_start) . '</td>'; $date_end = DateTimeCustomConvert(substr($tmpval['date_end'], 0, 10), 'd', 'mysql2rus'); echo '<td> ' . color_mark($q, $date_end) . '</td>'; echo '<td> ' . color_mark($q, $tmpval['trip_cost']) . '</td>'; echo '<td> ' . color_mark($q, $tmpval['dotation']) . '</td>'; echo '<td> ' . color_mark($q, $tmpval['house_type']) . '</td>'; if (!isset($_GET['save']) && !isset($_GET['print'])) { echo '<td class="notinfo"> ' . color_mark($q, $tmpval['comment']) . '</td>'; } } echo '</table></form>'; } //-------------------------------------списочная таблица -конец---------------------------------------------------- //постраничный вывод списка тем (по 10 тем) echo '<div align="center"> страницы '; $add_string = reset_param_name($query_string, 'page'); //"&pgVals=".$pgVals; if (!isset($pages_cnt)) { $pages_cnt = 0; } echo getPagenumList($pages_cnt, $page, 6, 'page', $add_string, ''); echo '</div>'; //--------------------------------------------------------
echo '<b>' . $res_pp[$groupArr[0][0]] . '</b><br>'; while ($paramVal1 == $res_pp[$groupArr[0][0]] && $i < $elemCnt) { $paramVal2 = $res_pp[$groupArr[1][0]]; //вывод Баз практик или 2-уровня группировки if ($groupArr[0][0] != $groupArr[1][0]) { echo ' <span class="pp_name">' . $groupArr[1][1] . ': ' . color_mark($q, $res_pp[$groupArr[1][0]]) . color_mark($q, $tw_name_add) . '</span><br>'; } while ($paramVal2 == $res_pp[$groupArr[1][0]] && $paramVal1 == $res_pp[$groupArr[0][0]] && $i < $elemCnt) { $paramVal3 = $res_pp[$groupArr[2][0]]; //вывод ФИО руководителей или 3-уровня группировки if ($groupArr[1][0] != $groupArr[2][0]) { echo $tab . '<span class="kd_fio">' . $groupArr[2][1] . ': ' . color_mark($q, $res_pp[$groupArr[2][0]]) . '</span><br>'; } while ($paramVal3 == $res_pp[$groupArr[2][0]] && $paramVal2 == $res_pp[$groupArr[1][0]] && $paramVal1 == $res_pp[$groupArr[0][0]] && $i < $elemCnt) { //вывод ФИО студентов echo $tab . $tab . '<span class="st_fio">студент: ' . color_mark($q, $res_pp['st_fio']) . '</span><br>'; $res_pp = mysql_fetch_array($res_PP); $i++; } } } } ?> <?php //постраничный вывод списка данных о (по 10) //оптимизация для подсчета числа страниц с учетом всех условий фильтрации //$query=$query." ".$search_query." "; //echo '$query='.$query; $res = mysql_query($query);
echo '<div>Результаты поиска по: <span style="font-weight:bold;font-size:14pt;">' . $q . '</span></div>'; $query = 'SELECT s.fio, s.id, sg.name AS gr_name, count(*) as rec_cnt FROM study_groups sg INNER JOIN students s ON (sg.id = s.group_id) INNER JOIN study_activity sa ON (s.id = sa.student_id) WHERE ' . echoIf($archiv == 'on', 'sa.date_act<"' . $def_settings['date_start'] . '"', '(sa.date_act>="' . $def_settings['date_start'] . '" or sa.date_act is null)') . ' and s.fio like "%' . strtolower($q) . '%" group by s.fio, s.id, sg.name order by s.fio limit 0,50'; $res = mysql_query($query); $rec_cnt = mysql_num_rows($res); if ($rec_cnt > 0) { echo '<div>найдено записей: <b>' . $rec_cnt . '</b>' . echoIf($archiv == 'on', ' <span class=warning>(поиск в архиве)</span>', '') . '</div>'; $i = 1; while ($a = mysql_fetch_array($res)) { echo $i . '. <a href="?student_id=' . $a['id'] . echoIf($archiv == 'on', '&archiv=on', '') . '">' . color_mark($q, $a['fio']) . ' (' . $a['gr_name'] . ')</a> записей: ' . $a['rec_cnt'] . ' <p>'; $i++; } } else { echo '<div>ничего не найдено</div>'; } } //-------------------------------------------------- if ($student_id > 0) { $stud_name = getScalarVal('select concat(s.fio," (",sg.name,")") as fio from students s LEFT OUTER JOIN study_groups sg ON (sg.id = s.group_id) where s.id=' . $student_id); if ($stud_name == '') { echo '<div class=warning>Указанный студент не найден'; } else { echo '<div>Результаты поиска по студенту: <span style="font-weight:bold;font-size:14pt;">' . $stud_name . '</span></div>';
function report_build($inGrFilendNum, $query) { // global $page, $pageVals, $query_string, $sort, $stype; //получаем имена столбцов по запросу, в запросе намерено не запрашиваем данные $res_col_names = mysql_query($query . ' limit 0'); //echo $query.' limit 0'; //print_r($res_col_names); //echo ' mysql_field_name($res_col_names,0)='.mysql_field_name($res_col_names,2); $groupArrGlobal = array(); $inGrFilendNum_cnt = count($inGrFilendNum); if ($inGrFilendNum_cnt > 3) { $inGrFilendNum_cnt = 3; } else { if ($inGrFilendNum_cnt <= 0) { $inGrFilendNum_cnt = 1; $inGrFilendNum = array(1); } } for ($i = 0; $i < $inGrFilendNum_cnt; $i++) { array_push($groupArrGlobal, array('grN' . ($i + 1), mysql_field_name($res_col_names, $inGrFilendNum[$i] - 1), $i + 1, 1)); } if ($inGrFilendNum_cnt == 1) { array_push($groupArrGlobal, array('grN2', mysql_field_name($res_col_names, 1), 2, 0)); array_push($groupArrGlobal, array('grN3', mysql_field_name($res_col_names, 2), 3, 0)); } if ($inGrFilendNum_cnt == 2) { array_push($groupArrGlobal, array('grN3', mysql_field_name($res_col_names, 2), 3, 0)); } //print_r($groupArrGlobal); /* $groupArrGlobal=array( array('grN1','дисциплина',1,1), array('grN2','преподаватель',2,1), array('grN3','вид контроля',3,1) ); //массив уровней группировки */ //смотрим какой параметр не используется при группировке $ignCol = count($groupArrGlobal); //число игнорируемых колонок при выводе таблицы результатов for ($i = 0; $i < $ignCol; $i++) { if (strpos($query_string, 'grN' . ($i + 1)) === false && isset($_GET['gr' . $i])) { $groupArrGlobal[$i][3] = 0; } } $getArrGr = array('', '', ''); //массив входных параметров сортировки из Get $groupArr = array(); $groupArr = $groupArrGlobal; if (isset($_GET['gr0']) && isset($_GET['gr1']) && isset($_GET['gr2'])) { for ($i = 0; $i < count($getArrGr); $i++) { $getArrGr[$i] = $_GET['gr' . $i]; } $groupArrTmp = array($groupArrGlobal[0][0] => 0, $groupArrGlobal[1][0] => 1, $groupArrGlobal[2][0] => 2); for ($i = 0; $i < count($getArrGr); $i++) { $groupArr[$i] = $groupArrGlobal[$groupArrTmp[$getArrGr[$i]]]; } } ?> <script language="javascript"> function test_liter_order(){//проверка порядка сортировки для вывода литературы var val_tmp_i=''; var val_tmp_j=''; var cur_val=''; var err=false; var sp_name=document.getElementById('gr0'); var pp_name=document.getElementById('gr1'); var kd_fio=document.getElementById('gr2'); if (sp_name.value==pp_name.value || sp_name.value==kd_fio.value) {err=true;} if (sp_name.value==pp_name.value || pp_name.value==kd_fio.value) {err=true;} if (sp_name.value==kd_fio.value || pp_name.value==kd_fio.value) {err=true;} if (err==false) {document.forms['gr_list'].submit(); } else {if (!confirm('Обнаружено совпадение в порядке группировки.\n\n Вы можете исправить порядок группировки или использовать указанный Вами порядок. \n\nИсправить ?')) document.forms['gr_list'].submit();} } </script> <?php //указываем сортировку для используемых столбцов в группировки, а потом по сортируемому столбцу //print_r($groupArrGlobal); $query .= ' order by '; for ($i = 0; $i < count($groupArr); $i++) { if ($groupArrGlobal[$i][3] == 1) { $query .= $groupArrGlobal[$i][2] . ', '; } } if ($sort > 0) { $query .= '' . $sort . ' ' . $stype . ' '; } else { $query = preg_replace('/, $/', '', $query); } //echo $query; $res_PP = mysql_query($query . ' limit ' . ($page - 1) * $pageVals . ',' . $pageVals); if (!isset($_GET['save']) && !isset($_GET['print'])) { ?> <form name="gr_list" id="gr_list" action="" method="get"> порядок группировки: <?php $query_str_hiddenFields = $query_string; //храним параметры GET, кроме полей группировки for ($j = 0; $j < count($groupArr); $j++) { echo $j + 1 . ' <select name="gr' . $j . '" id="gr' . $j . '">'; for ($i = 0; $i < count($groupArrGlobal); $i++) { $selected = ''; if (isset($_GET['gr' . $j])) { if ($groupArrGlobal[$i][0] == $_GET['gr' . $j]) { $selected = ' selected'; } $query_str_hiddenFields = reset_param_name($query_str_hiddenFields, 'gr' . $j); } else { if ($groupArrGlobal[$i][0] == $groupArrGlobal[$j][0] && $groupArrGlobal[$i][3] == 1) { $selected = ' selected'; } } echo '<option value=' . $groupArrGlobal[$i][0] . '' . $selected . '>' . $groupArrGlobal[$i][1] . '</option>'; } echo '</select> '; } while (list($key, $value) = each($_GET)) { //не храним группы, т.к. они уже есть if (!preg_match('/^gr\\d+$/', $key)) { echo '<input type=hidden id="' . $key . '" name="' . $key . '" value="' . $value . '">'; } } ?> <input type=button value=Ok onClick=javascript:test_liter_order();> <input type=button value="по умолчанию" title="восстановить параметры по умолчанию" onClick=window.location.href="?<?php echo $query_str_hiddenFields; ?> "> <!-- input type=hidden id="student_id" name="student_id" value="<?php echo $_GET['student_id']; ?> " --> </form> <?php } $flag1 = false; $flag2 = false; $i = 0; $elemCnt = mysql_num_rows($res_PP); //echo ' elemCnt='.$elemCnt; $res_pp = mysql_fetch_array($res_PP, MYSQL_NUM); //echo '$groupArr[0][2]-1='.($groupArr[0][2]-1).''; //print_r($groupArr); //echo ' sort='.$sort; while ($i < $elemCnt) { $paramVal1 = $res_pp[$groupArr[0][2] - 1]; //1-уровня группировки echo '<br><b>' . $res_pp[$groupArr[0][2] - 1] . '</b><br>'; while ($paramVal1 == $res_pp[$groupArr[0][2] - 1] && $i < $elemCnt) { $paramVal2 = $res_pp[$groupArr[1][2] - 1]; //2-уровня группировки if ($groupArr[0][0] != $groupArr[1][0] && $groupArr[1][3] == 1) { echo ' <span class="grN2" style="padding-left:20;">' . $groupArr[1][1] . ': ' . color_mark($q, $res_pp[$groupArr[1][2] - 1]) . color_mark($q, $tw_name_add) . '</span><br>' . "\n"; } while ($paramVal2 == $res_pp[$groupArr[1][2] - 1] && $paramVal1 == $res_pp[$groupArr[0][2] - 1] && $i < $elemCnt) { $paramVal3 = $res_pp[$groupArr[2][2] - 1]; //3-уровня группировки if ($groupArr[1][0] != $groupArr[2][0] && $groupArr[2][3] == 1) { echo '<span class="grN3" style="padding-left:40;">' . $groupArr[2][1] . ': ' . color_mark($q, $res_pp[$groupArr[2][2] - 1]) . '</span><br>' . "\n"; } //печатаем заголоски столбцов таблицы echo '<table border=1 cellspacing=0 cellpadding=5><tr>'; for ($m = 0; $m < $ignCol; $m++) { if ($groupArrGlobal[$m][3] == 0) { echo '<td class=main width="' . setColWidth(mysql_field_len($res_PP, $m)) . '">' . print_col($m + 1, mysql_field_name($res_PP, $m)) . '</td>'; } } for ($j = 3; $j < mysql_num_fields($res_PP); $j++) { echo '<td class=main width="' . setColWidth(mysql_field_len($res_PP, $j)) . '">' . print_col($j + 1, mysql_field_name($res_PP, $j)) . '</td>'; } echo '</tr>'; while ($paramVal3 == $res_pp[$groupArr[2][2] - 1] && $paramVal2 == $res_pp[$groupArr[1][2] - 1] && $paramVal1 == $res_pp[$groupArr[0][2] - 1] && $i < $elemCnt) { //вывод ФИО студентов echo '<tr>'; //вывод неиспользуемых полей группировки в основную таблицу for ($m = 0; $m < $ignCol; $m++) { if ($groupArrGlobal[$m][3] == 0) { echo '<td> ' . $res_pp[$m] . '</td>'; } } //вывод остальных полей, кроме полей группировки for ($k = $ignCol; $k < mysql_num_fields($res_PP); $k++) { echo '<td> ' . $res_pp[$k] . '</td>'; } echo '</tr>' . "\n"; $res_pp = mysql_fetch_array($res_PP, MYSQL_NUM); $i++; } echo '</table>'; } } } //$res=mysql_query($query); $itemCnt = getScalarVal('select count(*) from (' . $query . ')t'); if (floor($itemCnt / $pageVals) == $itemCnt / $pageVals) { $pages_cnt = floor($itemCnt / $pageVals); } else { $pages_cnt = floor($itemCnt / $pageVals) + 1; } echo '<div align="left"> страницы '; $add_string = reset_param_name($query_string, 'page'); for ($i = 1; $i <= $pages_cnt; $i++) { if ($i != $page) { echo '<a href="?page=' . $i . '&' . $add_string . '"> ' . $i . ' </a>'; } else { echo ' <b>' . $i . '</b> '; } } //-------------------------------------------------------- echo '<br>макс.число строк на странице: <input type=text value="' . $pageVals . '" name="pageVals" id="pageVals" size=10 title="число с 1-99"> <input type=button onclick="javascript:pgVals(\'' . reset_param_name($add_string, 'pageVals') . '\');" value=Ok> <p> Всего строк: ' . $itemCnt . '</div>'; }
} echo '<a href="filial_form.php?item_id=' . $tmpval['id'] . '&print" title="печать" target="_blank"> <img src="images/print.gif" alt="Печать" border="0"></a> <a href="filial_form.php?save&attach=doc&item_id=' . $tmpval['id'] . '" title="передать в Word" target="_blank"> <img src="images/design/file_types/word_file.gif" alt="Печать" border="0"></a> </td>'; } $i++; echo '<td> ' . ($i + ($page - 1) * $pgVals) . '</td>'; echo '<td> <a href="lect_anketa.php?kadri_id=' . $tmpval['kadri_id'] . '&action=update" title="перейти в анкету преподавателя">' . color_mark($q, $tmpval['fio_short']) . '</a></td>'; echo '<td> ' . color_mark($q, $tmpval['fil_name']) . '</td>'; echo '<td> ' . color_mark($q, intval($tmpval['day_cnt']) > 0 ? intval($tmpval['day_cnt']) : '') . '</td>'; echo '<td> ' . color_mark($q, intval($tmpval['hours_cnt']) > 0 ? intval($tmpval['hours_cnt']) : '') . '</td>'; echo '<td> ' . color_mark($q, DateTimeCustomConvert($tmpval['day_start'], 'd', 'mysql2rus')) . '</td>'; echo '<td> ' . color_mark($q, DateTimeCustomConvert($tmpval['day_end'], 'd', 'mysql2rus')) . '</td>'; echo '<td> ' . color_mark($q, $tmpval['fil_act_name']) . '</td>'; echo '<td> ' . color_mark($q, $tmpval['trans_name']) . '</td>'; if (!isset($_GET['save']) && !isset($_GET['print'])) { echo '<td class="notinfo"> ' . $tmpval['comment'] . '</td>'; } echo "</tr>\n"; } echo '</table>'; ?> </form> <?php //постраничный вывод списка данных о (по 10) //оптимизация для подсчета числа страниц с учетом всех условий фильтрации $query = $query . " "; $res = mysql_query($query);