Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zapytanie do bazy w petli ?
hmmm
post
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 0
Dołączył: 4.01.2005

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


stworzylem sobie taki skrypcik, ktory dziala jak najbardziej poprawnie.
to jego fragment:

  1. <?php
  2. //wyswietl wszystkie lata w kolejnosci od roku ostatniego do pierwszego
  3. for ($year; $year >= $yearless; $year--) {
  4. echo &#092;"<div class=\"menutd2\">n\" . $year . \"n</div>n\";
  5.  
  6. //wyswietl wszystkie miesiace w danym roku podczas ktorych zostaly napisane notki
  7. $query5 = mysql_query (&#092;"SELECT DISTINCT DATE_FORMAT(datetime, '%m') FROM notes WHERE DATE_FORMAT(datetime, '%Y') = $year ORDER BY datetime\");
  8. if ($query5) {
  9. while ($row = mysql_fetch_array($query5, MYSQL_NUM)) {
  10.  
  11. //tutaj inne tresc; w skrocie:
  12. $month = $row[0];
  13.  
  14. //wyswietl miesiac
  15. echo &#092;"<div class=\"menutd3\">n<a class=\"gray\" href=\"index.php?file=\" . $year . \"-\" . $row[0]  . \"\">\" . $month . \"</a>n</div>n\";
  16. }
  17. }
  18. ?>

ale ...
Cytat
(...) jak można w środku pętli dać robienie zapytań do bazy danych? Przecież w ten sposób zajedziesz tą bazę :-/

moje pytanie brzmi - jak moge zmodyfikowac ten srkupt?

Ten post edytował hmmm 28.01.2005, 20:38:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


Hm, ale po co robić takie zapytania jak przeważnie można wyciągnąc te dane wcześniej jednym zapytaniem? Lepiej odrazu uczyć się pisać optymalnie niż potem wszystko poprawiać ;]

Oto taki przykład :
  1. <?php
  2.  
  3. // pobierz ograniczona ilosc wiadomosci oraz ile zawieraja komentarzy
  4. $sql = 'SELECT n.*, count(c.cnID) AS nc FROM '.$SFN['table_prefix'].'news AS n LEFT JOIN '.$SFN['table_prefix'].'comments AS c ON (c.cnID = n.nID) WHERE n.nDate >= \"'.$ym.'01\" AND n.nDate <= \"'.$ym.'31\" GROUP BY n.nID ORDER BY n.nID DESC LIMIT '.$iStart.','.$SFN['news_on_page'];
  5. ?>

Można to było też zrobić, że pobieram listę wiadomości, a potem w środku pętli do każdej wiadomości zapytanie ile ma komentarzy.

hmmm: zależy jak wyglądają tabele i co chcesz wyciągnąć, czasem dochodzi się do wniosku, że źle skonstruowaliśmy te tabele i pola, zwłaszcza jak dopiero zaczynamy, a poprawiając i próbująć zoptymalizować to wszytko uczymy się, a na przyszłość jesteśmy bogatsi o doświadczenie i kolejne nasze tabele będą lepiej skonstruowane oraz nasz skrypt będzie szybciej działał.
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 Aktualny czas: 28.09.2025 - 03:25