Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z optymalizacją - słaba wydajność kodu
primo83
post 29.01.2015, 10:30:37
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 29.01.2015

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


Fragment kodu ma za zadanie wypełnić kalendarz rezerwacji samochodów (każde wypełnienie jest równocześnie aktywnym linkiem prowadzącym do szczegółów konkretnej rezerwacji). Teoretycznie wszystko działa, ale wydajność jest fatalna - załadowanie strony trwa od 7 do 11 sekund. Dopiero się uczę PHP i MySql dlatego nie bardzo wiem co mogę zrobić. Z góry dziękuję




  1. $zapytanie5 = "SELECT car_id, car_nazwa, car_cena1, car_cena2, car_cena3, car_cena4, car_cena5 FROM samochody ORDER BY car_nazwa ASC";
  2. $wynik5 = mysql_query($zapytanie5);
  3. $liczba_pol5 = mysql_num_fields($wynik5);
  4. while($pole = mysql_fetch_array($wynik5)) //ok 15 powtórzeń
  5. {
  6. for ($i=0;$i<$liczba_pol5;$i=$i+7)
  7. {
  8. $car_id = $pole[$i];
  9. $car_nazwa = $pole[$i+1];
  10. $cena1=$pole[$i+2];
  11. $cena2=$pole[$i+3];
  12. $cena3=$pole[$i+4];
  13. $cena4=$pole[$i+5];
  14. $cena5=$pole[$i+6];
  15.  
  16. if ($cena1 == 0 OR $cena2 == 0 OR $cena3 == 0 OR $cena4 == 0 OR $cena5 == 0){
  17. $czy_publikowac='nie';
  18. }
  19. else{
  20. $czy_publikowac='tak';
  21. }
  22.  
  23. $zapyt = "select kolor from samochody_kolory where car_id='$car_id'";
  24. $wyn = mysql_query($zapyt);
  25. $liczba_pol = mysql_num_fields($wyn);
  26. while($pole_k = mysql_fetch_array($wyn))
  27. {
  28. for ($i=0;$i<$liczba_pol;$i=$i+1)
  29. {
  30. $kolor = $pole_k[$i];
  31. }
  32. }
  33.  
  34. if ($czy_publikowac=='tak'){
  35. echo'<td align="left" width="257" height="30" bgcolor="'.$kolor.'"><font face="Arial"><b>'.$car_nazwa.'</b></font></td>';
  36. }
  37.  
  38. for ($licznik_dzien=1;$licznik_dzien<32;$licznik_dzien=$licznik_dzien+1)
  39. {
  40. if(checkdate($miesiac, $licznik_dzien, $rok))
  41. {
  42. $kontrola=0;
  43.  
  44. //------------------
  45. $zapyt001 = "SELECT * FROM tabela_rezerwacji WHERE rez_id_samochod='$car_id' AND rez_data_rok='$rok' AND rez_data_mies='$miesiac' AND rez_data_dzien='$licznik_dzien'";
  46. $wynik001 = mysql_query($zapyt001);
  47.  
  48. $liczba_pol = mysql_num_fields($wynik001);
  49. $liczba_wierszy = mysql_num_rows($wynik001);
  50. while($pole = mysql_fetch_array($wynik001))
  51. {
  52. $kontrola=1;
  53. }
  54. //------------------
  55.  
  56. $zapyt001 = "SELECT * FROM tabela_rezerwacji WHERE rez_id_samochod='$car_id' AND rez_data_rok='$rok' AND rez_data_mies='$miesiac' AND rez_data_dzien='$licznik_dzien' ORDER BY rez_godzina ASC";
  57. $wynik001 = mysql_query($zapyt001);
  58.  
  59. $liczba_pol = mysql_num_fields($wynik001);
  60. $liczba_wierszy = mysql_num_rows($wynik001);
  61. if ($kontrola==1 AND $czy_publikowac=='tak'){
  62. echo '<td align="center" width="27" height="30" bgcolor="'.$kolor.'"><font face="Arial">';
  63. }
  64. if ($kontrola != 1 AND $czy_publikowac=='tak'){
  65. echo '<td align="center" width="27" height="30"><font face="Arial">&nbsp;';
  66. }
  67. while($pole = mysql_fetch_array($wynik001))
  68. {
  69. $rez_id_samochod = $pole[0];
  70. $rez_data_dzien = $pole[1];
  71. $rez_data_mies = $pole[2];
  72. $rez_data_rok = $pole[3];
  73.  
  74. $rez_godzina = $pole[4];
  75. $rez_minuta = $pole[5];
  76. $rez_zw_godzina = $pole[6];
  77. $rez_zw_minuta = $pole[7];
  78.  
  79. $rez_nazwisko = $pole[8];
  80. $rez_telefon = $pole[9];
  81. $rez_miejsce_wyn = $pole[10];
  82. $rez_miejsce_zwr = $pole[11];
  83. $rez_uwagi = $pole[12];
  84. $rez_numer = $pole[13];
  85. $kontrola=1;
  86.  
  87. if ($rez_godzina==0){
  88. $rez_godzina='00';
  89. }
  90. if ($rez_minuta==0){
  91. $rez_minuta='00';
  92. }
  93. if ($rez_zw_godzina==0){
  94. $rez_zw_godzina='00';
  95. }
  96. if ($rez_zw_minuta==0){
  97. $rez_zw_minuta='00';
  98. }
  99.  
  100. if ($czy_publikowac=='tak'){
  101.  
  102. if ($rez_godzina==-77 and $rez_zw_godzina==77){
  103. echo '<a title="'.$rez_numer.'" href="kalendarz3.php?zmiana=tak&zm_rok='.$rok.'&zm_miesiac='.$miesiac.'&rez=tak&rez_nr='.$rez_numer.'"><b><font size="2">X</font></b></a><br>';
  104. }
  105. if ($rez_godzina!=-77){
  106. echo '<a title="'.$rez_numer.'" href="kalendarz3.php?zmiana=tak&zm_rok='.$rok.'&zm_miesiac='.$miesiac.'&rez=tak&rez_nr='.$rez_numer.'"><b><font size="2" color="#004000">'.$rez_godzina.':'.$rez_minuta.'</font></b></a><br>';
  107. }
  108. if ($rez_zw_godzina!=77){
  109. echo '<a title="'.$rez_numer.'" href="kalendarz3.php?zmiana=tak&zm_rok='.$rok.'&zm_miesiac='.$miesiac.'&rez=tak&rez_nr='.$rez_numer.'"><b><font size="2" color="#B00000">'.$rez_zw_godzina.':'.$rez_zw_minuta.'</font></b></a><br>';
  110. }
  111.  
  112. }
  113. }
  114. echo '</font></td>';
  115. }
  116. }
  117. echo '</tr>';
  118. }
  119. }
  120.  


Ten post edytował primo83 29.01.2015, 10:32:40
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.04.2024 - 09:39