Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mssql + php stronicowanie
Forum PHP.pl > Forum > PHP
cursor81
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
UDAT
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. ?>
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.