Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [pdo] dwa odwołania do bazy
Forum PHP.pl > Forum > PHP
tomek_swat
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
seba22
W drugim zapytaniu zmień zmienną $q na inną, np $qq.
Bo przy drugim zapytaniu $q jest resetowane, i feth array się wysypuje.
porady-it.pl
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. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.