Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [smarty] Przekazywanie obiektów itp.
scanner
post 8.09.2003, 09:59:40
Post #1





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Jak skorzystać z AdoDB w Smarty wykorzystując modułowość Smartiego?

Mam następujące pliki:
[php:1:fc665c0fa4]
<?php
// --- index.php ---
// (...)
$objDBConn = &ADONewConnection($dbms);
$objDBConn->Connect($dbhost, $dbuser, $dbpasswd, $dbname);
// (..)
$objSmarty->assign( 'objDBConn', $objDBConn );
$output = $objSmarty->fetch( 'index.tpl' );
echo $output;
?>
[/php:1:fc665c0fa4]
Kod
{* Smarty *}

{* --- index.tpl --- *}

{include file="show_news.tpl"}

Kod
{* Smarty *}

{* --- show_news.tpl --- *}

{include_php file="_includes/show_news.php"}

{section name="news" loop=$newsData}

{* (...) *}

{/section}

[php:1:fc665c0fa4]
<?php
// --- show_news.php ---
// (...)
$objNewsRecordset = $this->objDBConn->Execute($strSqlQuery);
?>
[/php:1:fc665c0fa4]

Dostaję w wyniku:
Cytat
Fatal error: Call to a member function Execute() on a non-object in D:...show_news.php on line...

I teraz mam pytanie - co robię źle, że nie mam dostępu do obiektu AdoDB z pliku show_news.php??


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
itsme
post 8.09.2003, 10:39:54
Post #2





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




ja mialem wczotaj ten sam problem i Seth usdzielił mi pomocy
oto co winno być

[php:1:2bf68f0feb]<?php

// --- show_news.php ---
// (...)
global $objDBConn;
$objNewsRecordset = $this->objDBConn->Execute($strSqlQuery);

?>[/php:1:2bf68f0feb]

i po kłopocie ...
@scanner widze ze idziemy tym samym tempem :-)
Go to the top of the page
+Quote Post
DeyV
post 8.09.2003, 10:58:06
Post #3





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




1. zamiast:
$output = $objSmarty->fetch( 'index.tpl' );
echo $output;

$objSmarty->display( 'index.tpl' );


2. Po co przerzucać na smarty zabawę z rekordami? Czy nie wymagamy wtedy zbyt dużo od designera?
Ja robię to tak:
[php:1:c5b1163dd4]<?php
$arrData = $this->objDBConn->GetAll( $strSqlQuery );
$objSmarty->assign_by_ref( "arrData", $arrData);
//lub $objSmarty->assign( "arrData", &$arrData); (daje to chyba ten sam efekt)
?>[/php:1:c5b1163dd4]


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
scanner
post 8.09.2003, 12:02:08
Post #4





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Zamiast [php:1:ee9393b5c5]<?php
$arrData = $this->objDBConn->GetAll( $strSqlQuery );
?>[/php:1:ee9393b5c5]
Powinno być:
[php:1:ee9393b5c5]<?php
$arrData = $objDBConn->GetAll( $strSqlQuery );
?>[/php:1:ee9393b5c5]

Pozatym niby działa, tylko, że wywołując w ten sposób zapytanie i sprawdzając:
[php:1:ee9393b5c5]<?php
var_dump( $arrData );
?>[/php:1:ee9393b5c5]

Otrzymuję tablicę pustą - a zapytanie wywołane z PhpMyAdmin zwraca dobre wyniki.
Co znowu spieprzyłem? Bo na logikę, wszystko musi działać...

@itsme: ja teraz nadrabiam zaległości urlopowe - niedługo Cię przegonię, hehe smile.gif


--------------------
scanner.info
Warto pamiętać: KISS, DRY
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: 18.08.2025 - 23:19