почему этот код не возвращает все строки? - PullRequest
1 голос
/ 10 сентября 2011

У меня есть база данных доступа, и одна из таблиц называется Products, которая содержит 9 строк. Я хочу echo всех строк, но когда я использую этот код, он будет echo только 4 строки. Где моя вина?

$conn = odbc_connect('MoeinODBCTest1', '', '');
$sql = "select * from Products";
$rs = odbc_exec($conn, $sql);

while(odbc_fetch_row($rs))
{
   $arr = odbc_fetch_array($rs);
   print_r($arr);
   echo '<br>';
}

Ответы [ 2 ]

5 голосов
/ 10 сентября 2011

И odbc_fetch_array, и odbc_fetch_row извлекают строки из результатов.

Попробуйте вместо:

$conn = odbc_connect('MoeinODBCTest1', '', '');
$sql = "select * from Products";
$rs = odbc_exec($conn, $sql);

while($arr = odbc_fetch_array($rs)) {
    print_r($arr);
   echo '
';
}
0 голосов
/ 10 сентября 2011

Вы извлекаете строки как при вызове odbc_fetch_row, так и odbc_fetch_array, поэтому каждая вторая строка отбрасывается.

Поскольку odbc_fetch_array возвращает FALSE, когда строк больше нет, вы можете использовать его для выборки следующей строки и проверки, есть ли еще строки одновременно:

while ($arr = odbc_fetch_array($rs)) {
    print_r($arr);
    echo "\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...