Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja kawałka kodu php
acztery
post 7.05.2008, 08:43:51
Post #1





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


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..
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
scanner
post 7.05.2008, 17:19:04
Post #2





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




A co robi search_table() i dlaczego masz tam @ ?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
acztery
post 7.05.2008, 17:30:45
Post #3





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


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. ?>


Ten post edytował acztery 7.05.2008, 17:35:04
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: 14.08.2025 - 13:24