Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> php][mysql] Dwa zapytania w jednym?
qoqo
post 25.11.2015, 15:59:39
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 5.06.2014

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


Witam. Pobieram z bazy danych kategorie oraz chcę wyświetlić ilość filmów w danej kategorii:

  1.  
  2. // ladujemy kategorie
  3. $sql = 'SELECT * FROM '.$slugsql.'_kategorie ORDER BY ID DESC';
  4. $category = mysql_query($sql);
  5.  
  6. while ($cat = mysql_fetch_array($category))
  7. {
  8.  
  9. $category_title = $cat['nazwa'];
  10. $category_url = $cat['slug'];
  11. $idcat = $cat['id'];
  12. $zapytanie = mysql_query('SELECT COUNT('.$idcat.') FROM red_kategorie_id');
  13. $ile=mysql_result($zapytanie, 0, 0);
  14. echo '<li class="cat-item cat-item-1">';
  15. echo "<a href='http://".$domena."".$slug_category."".$category_url."".$koncowka_category."'>".$category_title."</a> (".$ile.")";
  16. echo '</li>';
  17. }
  18.  
  19.  
  20.  


Rozumię, żę jest to niewydajne, w jaki sposób zrobić aby pobrać to jednym zapytaniem?


Pyatnie dwa: Czy załóżmyprzy 100-120 userach online, takie zapytania zamulą bazę?

Go to the top of the page
+Quote Post
nospor
post 25.11.2015, 16:15:14
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Takie rzeczy robi sie jednym zapytaniem. JOIN ujesz filmy do kategorii, dodajesz GROUP BY oraz COUNT i masz wszystko cacy na talerzu smile.gif

Z php to nie ma zadnego zwiazku. Przenosze.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dgladys
post 26.11.2015, 22:02:31
Post #3





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

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


Możesz wykorzystać podzapytanie, generalnie informacje masz o tym tutaj:
http://webmaster.helion.pl/index.php/kursmysql-podzapytania

Zdecydowanie przychylam się ku rozwiązaniu zaproponowanemu nospor
Rozwijając jego myśl na prostym przykładzie zakładając istnienie tabeli Film oraz Category
  1. SELECT c.*, COUNT(*) AS `films_count` FROM Film f INNER JOIN Category c ON c.id = f.category_id WHERE 1 GROUP BY f.category_id
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: 12.06.2025 - 20:28