Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z przeliczaniem duzej ilości wierszy[PHP+SQL]
adrian512
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 30.06.2014

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


Witam wszystkich,

mam problem z przeliczeniem duzej ilosci wierszy w bazie danych a dokladniej w tabeli : DokFin mam 50tys wierszy, Historiafin mam 60tys wierszy, Towary okolo 6 tys wierszy.


potrzebuje program który pobierze mi w zaleznosci od dat ID dokumentu finansowego z DokFin, pozniej wyszuka to ID w tabeli HistoriaFin, następnie pobierze z HistoriaFin IDtowaru,cene zakupu i ilosc( cena i ilosc pomnoży i zapisze do zmiennej) a Id towaru wyszuka w tabeli Towary i pobierz idGrupy do której nalezy towar.

Napisałem cos takiego :

  1. $query = "select Id from DokFin where (DokFin.DataSprzedazy between '2014-06-01' and '2014-06-02') ";
  2.  
  3. $wynik = mysql_query($query);
  4. while ($rekord = mysql_fetch_array($wynik)) {
  5.  
  6. $tempiddok[]=$rekord['Id']; //pobieram Id dokumentu sprzedazy spelniajace zakres dat
  7. }
  8.  
  9. foreach ($tempiddok as $key => $val) {
  10. $query2 = "select IdTowaru, Ilosc, ce_zn from HistoriaFin where HistoriaFin.IdDokFin like '$val' "; //pobieram id towaru spelniajacego zakres dat
  11. $wynik2 = mysql_query($query2);
  12. while ($rekord2 = mysql_fetch_array($wynik2)) {
  13. $tempidtowaru[]=$rekord2['IdTowaru'];
  14.  
  15. // Sprawdzam do jakiej grupy nalezy towar///
  16.  
  17. //licze wartosc danego dokumentu magazynowego
  18. $wartosczakupu=$rekord2['Ilosc']*$rekord2['ce_zn'];
  19. $wartoscgrupy[$tempidgrupy]=$wartoscgrupy[$tempidgrupy]+$wartosczakupu;
  20. }


Problem w tym gdy daty są np odlegle o 3 miesiace to program wykonuje to dłuzej niz 8000sekund.. Ktoś pomoże jak to rozwiazac?
Go to the top of the page
+Quote Post

Posty w temacie
- adrian512   Problem z przeliczaniem duzej ilości wierszy[PHP+SQL]   30.06.2014, 11:22:38
- - nospor   1) Do porownania konkretnej wartosci nie uzywa sie...   30.06.2014, 11:26:25
- - Turson   [SQL] pobierz, plaintext SELECT DokFin.id, Histori...   30.06.2014, 11:29:53
- - nospor   @Turson, zapomniales o czyms.... HistoriaFin.IdDok...   30.06.2014, 11:31:00
- - Turson   Podejrzewam, że IdDokFin jest integerem   30.06.2014, 11:32:26
- - nospor   A co ma piernik do wiatraka? Chodzi o to, ze zamia...   30.06.2014, 11:36:20
- - Turson   Aaa, myślałem że chodzi o brak '', a ...   30.06.2014, 11:39:13
- - nospor   Nie, nie jest tozmienna z post...z kodu widac wyr...   30.06.2014, 11:42:19
- - Turson   Cytatmyślałem że chodzi o brak '', a ...   30.06.2014, 11:47:37
- - nospor   Dlatego wyprowadzilem Cię z błędu, nieprawdaż?   30.06.2014, 11:49:03
- - Turson   Tak, ale dwukrotnie. W poście #7 napisałem, że już...   30.06.2014, 11:52:17
- - nospor   Nie mniej jednak mogles poprawić juz to zapytanie,...   30.06.2014, 11:54:11
- - adrian512   Dzięki bardzo za odpowiedź. Próbuje na wszystkie ...   30.06.2014, 12:24:26
- - Turson   [PHP] pobierz, plaintext $wynik = mysql_query...   30.06.2014, 12:29:01
- - adrian512   Dzięki, problem był z złą nazwą tabeli Ale dalej ...   30.06.2014, 12:38:47
- - nospor   WHERE (DokFin.DataSprzedazy BETWEEN '2014-06-0...   30.06.2014, 12:42:11
- - adrian512   Zrobiłem wszystko jak pisałeś , jednak ten czas d...   30.06.2014, 13:08:01
- - nospor   Przy prawidlowym indeksie nie powinno byc takich p...   30.06.2014, 13:09:49
- - adrian512   Nie wiem czy dobrze użyłem EXPLAIN(wstawiłem zamia...   30.06.2014, 14:12:04
- - Turson   Nie zamiast select a przed   30.06.2014, 14:16:31
- - adrian512   jak dodam przed, to nic sie nie wykonuje. Zrobiłę...   30.06.2014, 14:20:49
- - Turson   Masz klucze podstawowe założone na id danej tabeli...   30.06.2014, 14:24:21
- - adrian512   pojawił mi się jeszcze taki bląd: You have an erro...   30.06.2014, 14:38:26
- - Turson   A zapytanie?   30.06.2014, 14:39:56
- - adrian512   [PHP] pobierz, plaintext $query = "(SELE...   30.06.2014, 14:43:28
- - Turson   Policz ile razy otworzyłeś nawias a ile zamknąłeś   30.06.2014, 14:46:58
- - adrian512   Dzięki bardzo, problem był z Indeksami w bazie sql...   30.06.2014, 14:50:59


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 20:18