Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP przez ODBC nie pobiera wszystkich wierszy
Forum PHP.pl > Forum > PHP
ZenekN
Witam posiadam bazę danych w Pervasive, łączę się przez ODBC

wykonuję poniższy kod i otrzymuje tylko 1335 rows, a w bazie jest ponad 70,000

ale jak pobiorę jedno rows dla id 71743 to wtedy pobiera
Cytat
'SELECT * FROM "products" WHERE "id" = 71743';


  1. $connect=odbc_connect("Driver={Pervasive ODBC Client Interface};ServerName=alfa;ServerDSN=TEST;",
  2. "Master", "12345678", SQL_CUR_USE_ODBC);
  3.  
  4.  
  5. $query = 'select * from "products"';
  6. $result = odbc_exec($connect, $query);
  7.  
  8. $lp = 1;
  9. while(odbc_fetch_row($result)){
  10. $name = odbc_result($result, 11);
  11. echo $lp++.'-'.$name;
  12. }
Neutral
Zamiast tego:
  1. $query = 'select * from "products"';

Nie powinno być czasem tak:
  1. $query = 'select * from `products`';

albo tak:
  1. $query = 'select * from products';

?
nospor
@Neutral naprawde myslisz ze bledna skladnia zapytania, ktora powinna generowac blad powoduje, ze baza zwraca tylko 1000 rekordow zamiast bledu?

I nie, nie powinno byc tak jak mowisz poniewaz baza to nie mysql
ZenekN
ogólnie problem dosyć irytujący na stacku też go widać niektórzy twierdzą że jak skrypt natrafia na pusty znak to pętla nie przechodzi dalej i trzeba dopisać znak '\n'
ale jednak nic nie pomaga

myślałem że pomoże set_time_limit albo max_execution_time ale też nic
trueblue
W ostatnim linku, który podałeś, autor pobiera jednocześnie rekordy poprzez odbc_fetch_row i w środku pętli poprzez odbc_fetch_array, i w tym tkwi przyczyna jego problemu.
ZenekN
voila trueblue!

działa

  1. $r = 1;
  2. $row = 7000;
  3. while ($r < $row) {
  4. odbc_fetch_into($result,$x,$r);
  5. echo $x[10];
  6. echo '<br/>';
  7. $r++;
  8. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.