Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Oblicznie ilości znalezionych przedmiotów w kategoriach, Zaawansowana wyszukiwarka
cichy19-
post 7.11.2008, 13:12:56
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 5.06.2006

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


Witam,

Piszę zaawansowaną wyszukiwarkę do dużego sklepu, w którym znajduje się prawie 500.000 produktów i 10.000 kategorii.
Wyszukiwarka ma być podobna do wyszukiwarki na Allegro.pl

Wyszukując jakiś przedmiot ma wyświetlać w jakich kategoriach i w jakiej ilości został znaleziony.
Obecnie używam poniższego skryptu ale przy większej ilości znalezionych przedmiotów wyszukiwanie trwa bardzo długo.

Prosze o pomoc jak można to bardziej zoptymalizować.

  1. <?php
  2. foreach($katAn['response']['document'] as $kat) {
  3.  $rodzicID = trim($kat['itemCategoryID']);
  4.  
  5.  while($rodzicID != 0) {
  6.    $resultQuery = mysql_query('SELECT catID, parentID, catName FROM SHOP_kategorie WHERE catID=''.$rodzicID.''');
  7.    if($resultQuery) {
  8.      $rowRodzic = mysql_fetch_array($resultQuery);
  9.  
  10.      if($rowRodzic) {
  11.        $rodzicID = intval($rowRodzic['parentID']);
  12.              
  13.        $licznik[$rowRodzic['parentID']][$rowRodzic['catID']] += '1';
  14.  
  15.        // Zwaraca tylko kategorie główne
  16.        if($rowRodzic['parentID'] == 0) {
  17.          $nazwa[$rowRodzic['parentID']][$rowRodzic['catID']] = $rowRodzic['catName'].' - '.$licznik[$rowRodzic['parentID']][$rowRodzic['catID']]."\n";
  18.        }
  19.      } else {
  20.        $rodzicID = 0;
  21.      }
  22.    } else {
  23.      $rodzicID = 0;
  24.    }
  25.  }
  26. }
  27. ?>


Z góry dziekuję i pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
MMX3
post 7.11.2008, 17:24:17
Post #2





Grupa: Zarejestrowani
Postów: 155
Pomógł: 9
Dołączył: 26.01.2004
Skąd: Poznań

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


musisz przebudować sql'ke tak aby wykonywała się raz lub najchętniej bym jeszcze zrezygnował z podwójnego zapętlenia mysql_query(). To po pierwsze i najważniejsze.


--------------------
Go to the top of the page
+Quote Post
cichy19-
post 7.11.2008, 19:44:19
Post #3





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 5.06.2006

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


Jakaś podpowiedź jak to zrobić?
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 - 02:00