ďťż

[php][smarty][pdo] niezrozumiały Fatall Error

       

Podstrony


telcocafe

Mam 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:


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.



Źle pobierasz rekordy. Pętla while nie przechowuje wyników wykonania funkcji. Jest ona wywoływana przy każdym powtórzeniu. Użyj pętli foreach.
$res = $db->query(...); foreach($res as $row) { ... }Jeśli chcesz zmniejszyć użycie pamięci, usuń Smarty.
Użytkownik Ferrari edytował ten post 06 grudzień 2008, 20:04
zmieniłem na:
$result = $pdo->query('SELECT * FROM kategoria'); while($row=$result->fetch()) { $film['kategoria'] = $row['kategoria']; $film['id'] = $row['id']; $film_tablica[] = $film; } $pdo = null; $smarty -> assign('film', $film_tablica); return $smarty -> fetch('plugins_templates/filmy.tpl');
błąd już się nie pojawia ale nie wyświetla mi wszystkich rekordów

{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}

temat do zamknięcia, problem rozwiązany
Użytkownik WojtekP edytował ten post 06 grudzień 2008, 21:09
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.