Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Optymalizacja kawałka kodu php
Forum PHP.pl > Forum > PHP
acztery
nie mam pomysłu jak to rozwiązać kod działa ale czasem wykonanie zajmuje 3/5 sekund czasem odrazu.

Więc mam artykuły w danej kategori np mamy w kategori 200 art.

  1. <?php
  2. $classDoc2 = new Doc();
  3. $classDoc2->_path = $_GET['FOR'];
  4. $classDoc2->_order = "Time DESC";
  5. $a = $classDoc2->lstDocuments2();
  6. $acrRecord = @search_table($a,$_GET['ID']);
  7.  
  8. // prev
  9. $prevRecord = $acrRecord - 1;
  10. // next
  11. $nextRecord = $acrRecord + 1;
  12.  
  13. $smarty->assign('prievId',$a['data'][$prevRecord]['Id']);
  14. $smarty->assign('prievTitle',$a['data'][$prevRecord]['Title']);
  15.  
  16. $smarty->assign('nextId',$a['data'][$nextRecord]['Id']);
  17. $smarty->assign('nextTitle',$a['data'][$nextRecord]['Title']);
  18. ?>


na dole każdego ar. piszę czytaj nastepny i poprzedni. Więc to co wyzej sprawdzam pozcyje danego art w tablicy i pobieram nastepny i poprzedni ID i Tytuł. jak bedzie 2 tys art co co bede musial czytac z tablicy 2 tys. mało wydajne rozwiązania chyba. myślałem nad LIMIT ale jak dam np LIMIT 10 to nie działa..
scanner
A co robi search_table() i dlaczego masz tam @ ?
acztery
search_table zwraca ID jakie ma dany element w tablicy na podstawie tego ID pobieram ID art który jest przez i po... a te @ to mi sie wkradło chyba. ale jak mówie nie chcesz aby funkcja search_table szukała w tablicy która np ma 1000 art.

a tak wyglada search_table

  1. <?php
  2. function search_table($table, $search){  
  3. foreach($table['data'] AS $key => $value)  
  4. {  
  5.  if($value['Id'] == $search)
  6.  {  
  7.  return $key;
  8.  }  
  9. }  
  10. return -1;
  11. }
  12. ?>
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.