Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> mssql + php stronicowanie, Jak wyświetlić wyniki zwracane przez bazę MSSQL na okreslonej liczbie
cursor81
post
Post #1





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

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


mam praoblem ze stronicowaniem przy uzyciu MSSQL.
Znalazlam duzo przykladow z uzycieem MySql gdzie w selekcie uzywa sie LIMIT ...

Ja mam praoblem tego typu ze uzywajm Stored Procedure i nie moge w MSSQL uzyc LIMIT

czy jest jakis sposob gdzie w kodzie klasy mozna by bylo zrobic takie dzielenie na strone?

Myslalam o czyms takim ... mam pobrane wyniki do tablicy:
  1. <?php
  2. while($row=mssql_fetch_array($result)){
  3. $login[]=$row[0];
  4. $login2[]=$row[1];
  5. $login3[]=$row[2];
  6.  
  7. $smarty -> assign('login', $login);
  8. $smarty -> assign('login2', $login2);
  9. $smarty -> assign('login3', $login3);
  10. }
  11. ?>


i teraz mozna by bylo okreslic gdzies ze z posrod wszystkich wynikow ktore zwrocil bedzie bral na pierwsza strone od 0 do 20 zwroconych wierszy ... na kolejnych od 21 do 41 itd ....

ma ktos jakis pomysl jak to rozwiazac?

Jak wyciagnac z tablicy okreslona liczbe wierszy ktore ona przechowuje?

zrobilam cos takiego

  1. <?php
  2. $i=1;
  3. while($row=mssql_fetch_row($result)){
  4. if($i>RECORDS_PER_PAGE){break;}
  5. $login[]=$row[0];
  6. $login2[]=$row[1];
  7. $login3[]=$row[2];
  8.  
  9. $smarty -> assign('login', $login);
  10. $smarty -> assign('login2', $login2);
  11. $smarty -> assign('login3', $login3);
  12. $i++;
  13.  }
  14. ?>


ale wyniki nie wyswietlaja mi sie na stronach zawsze mam te same wyniki na kazdej stronie
Go to the top of the page
+Quote Post
UDAT
post
Post #2





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


Tutaj wyświetlasz tylko RECORDS_PER_PAGE rekordów, pierwszych rekordów
  1. <?php
  2. $i=1;
  3. while($row=mssql_fetch_row($result)){
  4. if($i>RECORDS_PER_PAGE){break;}
  5. $login[]=$row[0];
  6. $login2[]=$row[1];
  7. $login3[]=$row[2];
  8.  
  9. $smarty -> assign('login', $login);
  10. $smarty -> assign('login2', $login2);
  11. $smarty -> assign('login3', $login3);
  12. $i++;
  13.  }
  14. ?>


Dawno nie miałem styczności ze smarty'm, ale chyba to możesz dać na koniec:
  1. <?php
  2. $smarty -> assign('login', $login);
  3. $smarty -> assign('login2', $login2);
  4. $smarty -> assign('login3', $login3);
  5. ?>


Wytnij część tablicy przez array_slice" title="Zobacz w manualu php" target="_manual.

  1. <?php
  2. $results = array ( );
  3.  
  4. while ( $row=mssql_fetch_row($result) ) {
  5. $results [ ] = $row;
  6. }
  7.  
  8. $results = array_slice ( $results, ($page-1)*RECORDS_PER_PAGE, RECORDS_PER_PAGE );
  9.  
  10.  foreach ( $results as $row ) {
  11.  $login[]=$row[0];
  12.  $login2[]=$row[1];
  13.  $login3[]=$row[2];
  14. }
  15.  
  16. $smarty -> assign('login', $login);
  17. $smarty -> assign('login2', $login2);
  18. $smarty -> assign('login3', $login3);
  19.  
  20.  
  21. ?>
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 Aktualny czas: 20.08.2025 - 08:09