Здравствуйте! Занимаюсь веб-интерфейсом для базы данных на MS SQL SERVER. Серверная часть на php. Проблема в том, что при запросе к некоторым таблицам возвращает не все данные, например записей в таблице 40, выводит 10, при этом в запросе никаких условий нет. Подскажите, может кто сталкивался, в какую сторону хоть копать? Это проблема на сервере, что-то с драйвером? Или что-то с кодом? Обратила внимание, что в двух случаях выводит записи до той, в которой текстовое поле длиннее, чем предыдущие. При том, что в одном из этих случае ВСЕ записи короче, чем в другом. База данных рабочая, с java работает нормально. На нее не думаю. Но если вы считаете иначе, то не молчите.)) Вот пример кода. Первый запрос выводит все записи, а второй - 18 из 46. Код | $month = $_POST[monthLF]; $year = $_POST[yearLF];
echo ' <table border=0> <tr> <td align=left width="200"> Расчёт произведён за год:</td> <td align=left><b>'.$year.'</b></td> </tr> <tr> <td align=left width="200"> Расчёт произведён за месяц:</td> <td align=left><b>'.$month.'</b></td> </tr> </table> ';
include 'connectLF.php';
//Establishes the connection $conn = sqlsrv_connect($serverName, $connectionOptions); if ($conn) { $sql = 'Select Kategor from Lgotnik_Federal where InfoYear = '.$year.' and InfoMonth = '.$month; echo $sql; $res = sqlsrv_query ( $conn, $sql); $arr = array(); $kh = 0; while( $row = sqlsrv_fetch_array( $res, SQLSRV_FETCH_ASSOC) ) { $kh=$kh+1; $Kategors = explode(",", $row['Kategor']); $count = count($Kategors); for ($i=0; $i<$count; $i++) { $k = 0 + $Kategors[$i]; if (array_key_exists($k, $arr)) { $c = $arr[$k]; $arr[$k] = $arr[$k] + 1; } else { $arr += [$k=>'1']; } } } sqlsrv_free_stmt( $res); //print_r($arr);
echo '<h1>Расчёт количества льготных категорий в базе данных, предоставленной ПФР </h1>'; $sql = 'select KodLgota,NameLgota from SprLgota_Federal order by KodLgota'; echo $sql; $res = sqlsrv_query ( $conn, $sql); echo '<table border>'; echo '<tr><td><b>Код категории</b></td><td><b>Наименование категории </b></td><td><b>Количество</b></td></tr>'; while( $row = sqlsrv_fetch_array( $res, SQLSRV_FETCH_ASSOC) ) { $k = $row['KodLgota']; $n = $row['NameLgota']; if (array_key_exists($k, $arr)) { echo '<tr><td>'.$k.'</td><td>'.$n.'</td><td>'.$arr[$k].'</td></tr>'; } else { echo '<tr><td>'.$k.'</td><td>'.$n.'</td><td>0</td></tr>'; } } echo '<tr><td rowspan = 2><b>Итого</b></td><td><b>Количество человек</b></td><td><b>'.$kh.'</b></td></tr>'; echo '<tr><td><b>Количество льготных оснований</b></td><td><b>'.array_sum($arr).'</b></td></tr>'; echo '</table>'; sqlsrv_free_stmt( $res);
} else { echo "<br />".'Невозможно подключиться к базе данных'."<br />"; }
|
Заранее спасибо! Буду рада любому конструктивному совету.
|