Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][smarty][pdo] niezrozumiały Fatall Error
Forum PHP.pl > Forum > PHP
wiciu010
Mam kod:
Kod
<?php
function smarty_function_filmy($params,&$smarty)
{
try {
   $pdo = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.'', DB_USER, DB_PASSWORD);
   $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        
     while($row=$pdo->query('SELECT * FROM kategoria')->fetch())
     {
                         $film['id'] = $row['id'];                        
                         $film['kategoria'] = $row['kategoria'];
                         $film_tablica[] = $film;
      }
    $pdo = null;
    $pdo -> closeCursor();
   $smarty -> assign('film', $film_tablica);
    $smarty -> fetch('plugins_templates/filmy.tpl');
  
}
catch (PDOException $e) {
   print "Error!: " . $e->getMessage() . "<br/>";
   die();
   }
}
?>


wywala mi błąd:

Cytat
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 16 bytes) in /home/wiciu/domains/wiciu.hekko.pl/public_html/filmy/plugins/function.filmy.php on line 13


chodzi o linię gdzie jest while...

Czytałem, że chodzi o przydział pamięci, ale za bardzo nie rozumiem skąd błąd bo baza z której będą pobierane dane ma tylko 14 rekordów składających się z dwóch pól. Normalnie mi pobiera dane ale jak próbuję z wykorzystaniem smarty i pdo to mi coś nie wychodzi, a dopiero się uczę tych technik.
ddiceman
To dlatego, ze zapytanie wykonujesz od nowa z kazdym przejsciem petli, przez co nieskonczona ilosc razy pobierany jest pierwszy wiersz.
Zamien
  1. <?php
  2. while($row=$pdo->query('SELECT * FROM kategoria')->fetch())
  3. ?>

na
  1. <?php
  2. $result = $pdo->query('SELECT * FROM kategoria');
  3. while($row=$result->fetch())
  4. ?>
wiciu010
OK poprawiłem i błąd już się nie pojawia, ale nie wyświetla mi wszystkich pobranych rekordów, tzn:
kod odpowiedzialny za wyświetlanie rekordów:
Kod
{foreach item="film" from="$film"}
{$film.id}.($film.kategoria)<br>
{/foreach}


ID wyświetla poprawnie ale zamiast wyświetlić nazwę kategorii to mi wyświetla {$film.kategoria}
dr_bonzo
a nie czasem: ($film.kategoria) ?
wiciu010
jasne, zamiast nawiasów klamrowych dałem okrągłe
temat do zamknięcia
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.