Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] kolejkowanie do wyswietlania zapytań, po wykonaniu jednego zapytanie zaczyna robić drugie
orzeleagle
post 23.01.2018, 17:17:14
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 29.05.2016

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


witam,
potrzebuje pomocy, ogólnie plik wygląda tak:

  1.  
  2. <?php
  3. require "polaczenie_z_baza.php";
  4. polaczenie_z_baza(); // połączenie z bazą
  5.  
  6.  
  7. /* zad 4 */
  8. $a1 = mysql_query("SELECT STDDEV_POP(author_publications) FROM
  9. (SELECT COUNT(t1.id_autora) AS author_publications, t1.id_autora FROM tab_lacz1 t1, tytul t
  10. WHERE
  11. t.rok_wydania>1981 AND
  12. t.rok_wydania<1985 AND
  13. t.id_tytulu = t1.id_tytulu
  14. GROUP BY t1.id_autora) A");
  15. $a1 = mysql_fetch_assoc($a1);
  16.  
  17. $a2 = mysql_query("SELECT STDDEV_POP(author_publications) FROM
  18. (SELECT COUNT(t1.id_autora) AS author_publications, t1.id_autora FROM tab_lacz1 t1, tytul t
  19. WHERE
  20. t.rok_wydania>1981 AND
  21. t.rok_wydania<1990 AND
  22. t.id_tytulu = t1.id_tytulu
  23. GROUP BY t1.id_autora) A");
  24. $a2 = mysql_fetch_assoc($a2);
  25.  
  26. /* i tak dalej masa zapytań
  27.   ..........................
  28.   ..........................
  29.   ..........................
  30.   ..........................
  31.   ..........................
  32. */
  33.  
  34.  
  35. /* i tutaj mam duża tabelkę w której wyświetlam wynik z tych wszystkich zapytań */
  36.  
  37. <table class="textwhite" align="center" border="1">
  38. <tbody><tr>
  39. <td>Standard deviation: publication/author</td>
  40. <td>'.$a1['STDDEV_POP(author_publications)'].'</td>
  41. <td>'.$a2['STDDEV_POP(author_publications)'].'</td>
  42. <td>'.$a3['STDDEV_POP(author_publications)'].'</td>
  43. <td>'.$a4['STDDEV_POP(author_publications)'].'</td>
  44. <td>'.$a5['STDDEV_POP(author_publications)'].'</td>
  45. <td>'.$a6['STDDEV_POP(author_publications)'].'</td>
  46. <td>'.$a7['STDDEV_POP(author_publications)'].'</td>
  47. </tr>
  48. </tbody></table>
  49.  


i jest tak, że strasznie dużo czasu potrzeba na wczytanie tych wszystkich danych. W tym kodzie potrzebuje pomocy z tym żeby te dane wczytywany się pojedynczo ale dynamicznie, czyli na początku pokazuje się jeden wynik, zaraz kolejny i tak dalej aż załaduje się cała tabela.

Czy jest ktoś wstanie pomóc?

Ten post edytował orzeleagle 23.01.2018, 17:19:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trueblue
post 3.02.2018, 18:55:22
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Cytat(Pilsener @ 3.02.2018, 18:08:02 ) *
Podłącze się, bo może komuś się przyda:
  1. FROM tab_lacz1 t1, tytul t
- coś takiego nie powinno być w ogóle dopuszczalne w mysql, to tworzy iloczyn tabel, czyli jak masz w jednej 100 rekordów a w drugiej 1000 to w wyniku będzie 100 000 rekordów.

W teorii. W praktyce CROSS JOIN + WHERE zostanie zoptymalizowany i wykonany jak INNER JOIN.


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 27.04.2024 - 11:14