За последние 24 часа нас посетил 20791 программист и 1135 роботов. Сейчас ищут 374 программиста ...

Поиск ошибки в коде

Тема в разделе "Сделайте за меня", создана пользователем Anwin, 6 сен 2013.

  1. Anwin

    Anwin Новичок

    С нами с:
    6 сен 2013
    Сообщения:
    2
    Симпатии:
    0
    Добрый день всем!Очень нужна помощь, заранее спасибо... Есть кусок кода и проблема которая звучит так
    "На сайте отображается таблица с неправильными значениями. Необходимо найти ошибку на выделенном участке кода." Собственно сам код


    case 77: //по ксг МКБ расширенная
    $query = "SELECT a.lpu as lpu, count(*) as cnt,
    a.MKB1 as mkb, a.KSG as ksg,
    CASE
    WHEN (b.TYPE_KSG = 'S') THEN a.OPER_OSN
    WHEN (b.TYPE_KSG = 'T') THEN a.oper_usl
    END as kod,

    a.mkb3,
    sum(dlit) as dlit,
    ROUND ( CAST (sum(dlit) as float)/ CAST (count(*) AS float),2) as sr_dlit,
    sum(isnull(sum1,0)) as sum_oms,
    a.oper_usl,a.oper_osn, b.TYPE_KSG as type
    FROM $dbase a
    LEFT JOIN edins.dbo.KSG b ON a.KSG=b.COD_KSG
    LEFT OUTER JOIN edins.dbo_OTDELS OTDELS ON $fixed_where
    WHERE KSG is not null and $a
    GROUP BY a.lpu, a.ksg,a.mkb1,a.oper_usl,b.type_ksg, a.mkb3,a.oper_osn
    order by a.lpu";

    // print "<pre>".$query;

    $rez=mssql_query($query) or query_die("Bad select");
    $num = mssql_num_rows($rez);

    BeginOutput();BeginData($title,"Распределение по КСГ, МКБ");
    BeginColHeader();
    WriteColHeader("Код ЛПУ");
    WriteColHeader("ЛПУ");
    WriteColHeader("Количество");
    WriteColHeader("Код КСГ");
    WriteColHeader("КСГ");
    WriteColHeader("МКБ1");
    WriteColHeader("Расшифр. МКБ1");
    WriteColHeader("МКБ3");
    WriteColHeader("Расшифр. МКБ3");
    WriteColHeader("Код хир. операции");
    WriteColHeader("Расшифр. хир. операции");


    WriteColHeader("Длительность");
    WriteColHeader("Ср. срок");
    WriteColHeader("Стоимость");

    EndColHeader();
    for($i = 0; $i < $num; $i++)
    {
    $line[$i] = mssql_fetch_array($rez);
    }

    for($j = 0; $j < $num; $j++)
    {

    unset ($ax);
    unset ($axx);
    unset ($u);

    $ax = explode(",",$line[$i]['kod']);

    $axx = array_unique($ax);

    for ($i = 0; $i < count($axx); $i++)
    {
    $u[$i] = sek_name("edins","select name from sprusl where cod_usl ='$axx[$i]'") ;

    }

    $usl = implode(",",$u);

    BeginRow();
    WriteCell($line[$j]['lpu'], "Char");
    WriteCell(sek_name("edins","select name from LPURGS where kod ='".$line[$j][lpu]."'"),"Char");
    WriteCell($line[$j]['cnt'],"Int");

    WriteCell($line[$j]['ksg'], "Char");
    WriteCell(sek_name("edins","select name from KSG where cod_ksg ='".$line[$j][ksg]."'"),"Char");
    WriteCell($line[$j]['mkb'], "Char");
    WriteCell(sek_name("edins","select name from MKB10 where kod ='".$line[$j][mkb]."'"), "Char");

    WriteCell($line[$j]['mkb3'], "Char");
    WriteCell(sek_name("edins","select name from MKB10 where kod ='".$line[$j][mkb3]."'"), "Char");
    WriteCell($line[$j]['kod'], "Char");

    WriteCell($usl, "Char");

    WriteCell($line[$j]['dlit'], "Int");
    WriteCell($line[$j]['sr_dlit'], "Currency");
    WriteCell($line[$j]['sum_oms'], "Currency");

    EndRow();

    $promdlit += $line[$j]['dlit'];
    $promsum += $line[$j]['sum_oms'];
    $promcnt += $line[$j]['cnt'];

    $totdlit += $line[$j]['dlit'];
    $totsum += $line[$j]['sum_oms'];
    $totcnt += $line[$j]['cnt'];

    if ($line[$j]['lpu']!= $line[$j+1]['lpu'])
    {
    BeginRow();
    WriteCell("&nbsp;","Char");
    WriteSummary("Всего","Char");
    WriteSummary($promcnt,"Int");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    $promsr = round ($promdlit/$promcnt,2);

    WriteSummary($promdlit,"Int");
    WriteSummary($promsr,"Currency");
    WriteSummary($promsum,"Currency");
    EndRow();

    $promdlit = 0;
    $promsum = 0;
    $promcnt = 0;
    }

    }
    BeginRow();
    WriteCell("&nbsp;","Char");
    WriteSummary("Всего","Char");
    WriteSummary($totcnt,"Int");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    WriteCell("&nbsp;","Char");
    $totsr = round ($totdlit/$totcnt,2);

    WriteSummary($totdlit,"Int");
    WriteSummary($totsr,"Currency");
    WriteSummary($totsum,"Currency");
    EndRow();

    EndData();EndOutput();
    break;
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.734
    Симпатии:
    1.315
    Адрес:
    Лень
    а как мы узнаем что нам выдало или что как почему и за что в табло?
     
  3. Anwin

    Anwin Новичок

    С нами с:
    6 сен 2013
    Сообщения:
    2
    Симпатии:
    0
    Тут чисто логическая ошибка либо в алгоритме, либо в написании