echo '<img src="images/todelete.png" alt="Удалить" border="0"></a>&nbsp;&nbsp;&nbsp;';
            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">&nbsp;' . 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']) . '&nbsp;</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>&nbsp;' . ($i + ($page - 1) * $pgVals) . '</td>';
            echo '<td>&nbsp;<a href="lect_anketa.php?kadri_id=' . $tmpval['fio_id'] . '&action=update" title="в анкету преподавателя">' . color_mark($q, $tmpval['fio']) . '</a></td>';
            echo '<td>&nbsp;' . color_mark($q, $tmpval['dolgnost']) . '</td>';
            echo '<td>&nbsp;' . color_mark($q, $tmpval['trip_count']) . '</td>';
            $date_start = DateTimeCustomConvert(substr($tmpval['date_start'], 0, 10), 'd', 'mysql2rus');
            echo '<td>&nbsp;' . color_mark($q, $date_start) . '</td>';
            $date_end = DateTimeCustomConvert(substr($tmpval['date_end'], 0, 10), 'd', 'mysql2rus');
            echo '<td>&nbsp;' . color_mark($q, $date_end) . '</td>';
            echo '<td>&nbsp;' . color_mark($q, $tmpval['trip_cost']) . '</td>';
            echo '<td>&nbsp;' . color_mark($q, $tmpval['dotation']) . '</td>';
            echo '<td>&nbsp;' . color_mark($q, $tmpval['house_type']) . '</td>';
            if (!isset($_GET['save']) && !isset($_GET['print'])) {
                echo '<td class="notinfo">&nbsp;' . 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 ' &nbsp; <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>';
Beispiel #5
0
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> &nbsp;';
        }
        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();> &nbsp; 	
	<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>&nbsp;' . $res_pp[$m] . '</td>';
                        }
                    }
                    //вывод остальных полей, кроме полей группировки
                    for ($k = $ignCol; $k < mysql_num_fields($res_PP); $k++) {
                        echo '<td>&nbsp;' . $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"> &nbsp;
	<input type=button onclick="javascript:pgVals(\'' . reset_param_name($add_string, 'pageVals') . '\');" value=Ok>
	<p> Всего строк: ' . $itemCnt . '</div>';
}
Beispiel #6
0
            }
            echo '<a href="filial_form.php?item_id=' . $tmpval['id'] . '&print" title="печать" target="_blank">
			<img src="images/print.gif" alt="Печать" border="0"></a>&nbsp;&nbsp;&nbsp;
			<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>&nbsp;&nbsp;&nbsp;</td>';
        }
        $i++;
        echo '<td>&nbsp;' . ($i + ($page - 1) * $pgVals) . '</td>';
        echo '<td>&nbsp;<a href="lect_anketa.php?kadri_id=' . $tmpval['kadri_id'] . '&action=update" title="перейти в анкету преподавателя">' . color_mark($q, $tmpval['fio_short']) . '</a></td>';
        echo '<td>&nbsp;' . color_mark($q, $tmpval['fil_name']) . '</td>';
        echo '<td>&nbsp;' . color_mark($q, intval($tmpval['day_cnt']) > 0 ? intval($tmpval['day_cnt']) : '') . '</td>';
        echo '<td>&nbsp;' . color_mark($q, intval($tmpval['hours_cnt']) > 0 ? intval($tmpval['hours_cnt']) : '') . '</td>';
        echo '<td>&nbsp;' . color_mark($q, DateTimeCustomConvert($tmpval['day_start'], 'd', 'mysql2rus')) . '</td>';
        echo '<td>&nbsp;' . color_mark($q, DateTimeCustomConvert($tmpval['day_end'], 'd', 'mysql2rus')) . '</td>';
        echo '<td>&nbsp;' . color_mark($q, $tmpval['fil_act_name']) . '</td>';
        echo '<td>&nbsp;' . color_mark($q, $tmpval['trans_name']) . '</td>';
        if (!isset($_GET['save']) && !isset($_GET['print'])) {
            echo '<td class="notinfo">&nbsp;' . $tmpval['comment'] . '</td>';
        }
        echo "</tr>\n";
    }
    echo '</table>';
    ?>
 
</form>

<?php 
    //постраничный вывод списка данных о (по 10)
    //оптимизация для подсчета числа страниц с учетом всех условий фильтрации
    $query = $query . "  ";
    $res = mysql_query($query);