Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> pg_fetch_array(): Unable to jump to row...
karolbul
post 23.11.2005, 13:10:21
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 23.11.2005

Ostrzeżenie: (0%)
-----


Witam,
Mam następujący problem:
skrypt powinien wyświetlać pobrane z bazy wyniki zapytania w porcjach 20 rekordów w tabeli (stronnicowanie).
Problem w tym, że jeżeli w bazie jest 35 rekordów odpowiadających kryterium zapytania, skrypt wyświetli tylko jedną podstronę z 20 rekordami a pozostałe pominie, tzn. nie wyświetli.
W drugim przypadku jeżeli wynik zapytania zwraca mniej rekordów niż 20 (w bazie np. istnieje 5 rekordów odpowiadających danemu kryterium) to wyświetli komunikaty: (ilość poniższych komunikatów powiela do 20, tzn. jeżeli w bazie jest tylko 5 rekordów to wyświetli dodatkowo 15 ostrzeżeń):

Warning: pg_fetch_array(): Unable to jump to row 6 on PostgreSQL result index 6 in /usr/local/apache/htdocs/b/wydruk_script.php on line 163
.
.
.
.
.
.
Warning: pg_fetch_array(): Unable to jump to row 19 on PostgreSQL result index 6 in /usr/local/apache/htdocs/b/wydruk_script.php on line 163


oto fragment mojego kodu:
  1. <?php
  2.  
  3. $SQL = "SELECT COUNT(*) FROM poczta_wych where data_wyslania = '".$data_wyslania."' "; 
  4. $RES = pg_query($SQL);;
  5. list($iloscWpisow) = pg_fetch_row($RES);
  6.  
  7.  
  8. $SQL = "SELECT * FROM poczta_wych where data_wyslania = '".$data_wyslania."'";
  9.  
  10.  
  11. $RES2 = pg_query($SQL); 
  12.  
  13. ... kod rysuje tabele...
  14.  
  15. for($g=($_GET['porcja']*ILOSC_WYNIKOW_NA_STRONIE)-20;$g<$_GET['porcja']*ILOSC_WYNIKOW_NA_STRONIE;$g++)
  16. {
  17.  
  18.  
  19. $AFR = pg_fetch_array($RES2,$g);
  20.  
  21. ?>

i dalej w pętli wstawia poszczególne dane.
Go to the top of the page
+Quote Post
nospor
post 23.11.2005, 13:20:47
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jaja sobie robisz? zamykam. prosze przeslac mi na PW nową treśc , bez zbedengo kodu w stylu echo '<tr>'; i objetej we wlasciwe bbcode.
zastanow sie. podales nam tu kod na 4 strony z czego 4/5 kodu to rzeczy ktore nas nie interesuja a tylko zaciemniają wszystko. Patrz podpis ponizej

edit: otwieram. ale dalej nie bylo bbcode. poprawilem


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mrbungle
post 24.11.2005, 02:46:15
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.11.2005

Ostrzeżenie: (10%)
X----


Jest cos takiego w pg jak LIMIT i OFFSET. Sa rownowazne MySQL-owemu : LIMIT X,Y
Proponowałbym tym pomanipulować winksmiley.jpg

Ja bym to zrobil tak:
  1. <?php
  2.  
  3.  
  4. if(!isset($_GET['strona'])
  5.  $_GET['strona'] = 0;
  6.  
  7. $max_na_stronie = 20;
  8.  
  9. $SQL = "SELECT * FROM poczta_wych where data_wyslania = '".$data_wyslania."' LIMIT ".$max_na_stronie." OFFSET ".($_GET['strona']*$max_na_stronie);
  10. $wynik = pg_query($SQL);
  11.  
  12. while($rekord = pg_fetch_array($wynik))
  13. {
  14.  
  15. ...
  16.  
  17. }
  18.  
  19.  
  20. ?>


wydaje mi sie ze ten sam efekt osiagniesz co pierwotnie chciales...


--------------------
Mjuzik is maj aeroplejn
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 08:44