Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [pdo] dwa odwołania do bazy
tomek_swat
post
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 3.04.2008

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


witam

problem polega na tym, że potrzebuję pobrać z tabeli wszystkie kategorie oraz dla każdej z nich obliczyć liczbę produktów danej kategorii, mam problem z reazlizacją tego w pdo, gdyż pojawia się błąd o jednoczesnym wykonywaniu dwóch zapytań, ktoś ma jakiś pomysł? oto kod:
  1. <?php
  2. $q = $db -> query('select distinct category from products order by category');
  3.                        
  4.    while($row = $q->fetch()){
  5.        
  6.    $link = urlencode($row['category']);
  7.    $cat = $row['category'];
  8.    
  9.    echo '<a href="view.php3?kategoria='.$link.'">'.$cat.'</a>';
  10.  
  11.    }
  12.    $q = $db -> query("select count(pid) from products where (category = '$cat')
  13.                            AND (ends > now()) AND !(starts > now())");
  14.    
  15.    $n = $q->fetchColumn();
  16.    
  17.    echo '('.$n.')<br />';                                    
  18.    
  19.    $q->closeCursor()
  20. ?>

gdy zrobię w ten sposób pojawia się błąd
  1. <?php
  2. $q = $db -> query('select distinct category from products order by category');
  3.                        
  4.    while($row = $q->fetch()){
  5.        
  6.    $link = urlencode($row['category']);
  7.    $cat = $row['category'];
  8.    
  9.    echo '<a href="view.php3?kategoria='.$link.'">'.$cat.'</a>';
  10. $q = $db -> query("select count(pid) from products where (category = '$cat')
  11.                            AND (ends > now()) AND !(starts > now())");
  12.    
  13.    $n = $q->fetchColumn();
  14.    
  15.    echo '('.$n.')<br />';                                    
  16.    
  17.    $q->closeCursor();
  18.    }
  19. ?>


pzdr
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
seba22
post
Post #2





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


W drugim zapytaniu zmień zmienną $q na inną, np $qq.
Bo przy drugim zapytaniu $q jest resetowane, i feth array się wysypuje.


--------------------
Go to the top of the page
+Quote Post
porady-it.pl
post
Post #3





Grupa: Zarejestrowani
Postów: 89
Pomógł: 20
Dołączył: 13.05.2007
Skąd: Warszawa

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


Wydaje mi się że w ten sposób otrzymasz pożądany efekt:
  1. <?php
  2.  
  3. $q = $pdo -> query("SELECT COUNT(category) ilosc, category  FROM products GROUP BY category");
  4.  
  5. while($record = $q -> fetch()) {
  6.  
  7.    echo '<a href="view.php3?kategoria='.$record['category'].'">'.$record['category'].' ('.$record['ilosc'].')</a><br />';
  8. }
  9.  
  10. ?>


Ten post edytował porady-it.pl 20.04.2009, 12:49:11


--------------------
Kurs Video PHP i MySQL, porady-it.pl - gotowe rozwiązania dla webmasterów
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 Aktualny czas: 21.08.2025 - 04:30