Mam problem ze znalezieniem konkretnych informacji na temat wywołania zmiennej z funkcji w szablonie.
Zdaje sobie sprawe że zaprezentowane niżej przykłady mogą być bardzo łopatologiczne, acz kolwiek postaram się sprawe przedstawić rzeczowo.
Strona wygląda tak:
"Kontroler" głowny_katalog/inside.php
<?php require_once('config.php'); require_once('classes/auth.class.php'); require_once('classes/get_data.class.php'); require_once('classes/db.class.php'); $auth=new auth(); $auth->check_login(); $user_id = $_SESSION['id']; { $_GET['page'] = 'inside'; } switch($_GET['page']) { case 'account': include_once('templates/account.php'); break; default: include_once('templates/account.php'); } ?>
"Klasa" główny_katalog/classes/get_data.class.php
class show_data{ function show_data_info($target, $user_id){ $pdo = db::connect(); $stmt = $pdo->query('SELECT name,surname,born,martial,street_pref,street,home,phone_pref,phone,mail,www FROM icv_vcard WHERE id =' . $user_id); $details = $stmt->fetch(); } }
"Szablon" główny_katalog/template/account.php
<?php require_once('header.php'); require_once('account_menu.php'); require_once('profil-box.php'); $admin = new show_data(); $admin->show_data_info(); ?> <!---cv-box-start---> <div id="profil-cv"> </div> <!---cv-box-end---> <?php require_once('footer.php'); ?>
I informacja zwrotna:
Warning: Missing argument 1 for show_data::show_data_info(), called in C:\xampp\htdocs\icv\templates\account.php on line 6 and defined in C:\xampp\htdocs\icv\classes\get_data.class.php on line 6 Warning: Missing argument 2 for show_data::show_data_info(), called in C:\xampp\htdocs\icv\templates\account.php on line 6 and defined in C:\xampp\htdocs\icv\classes\get_data.class.php on line 6 Notice: Undefined variable: user_id in C:\xampp\htdocs\icv\classes\get_data.class.php on line 8 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1' in C:\xampp\htdocs\icv\classes\get_data.class.php:8 Stack trace: #0 C:\xampp\htdocs\icv\classes\get_data.class.php(8): PDO->query('SELECT name,sur...') #1 C:\xampp\htdocs\icv\templates\account.php(6): show_data->show_data_info() #2 C:\xampp\htdocs\icv\inside.php(25): include_once('C:\xampp\htdocs...') #3 {main} thrown in C:\xampp\htdocs\icv\classes\get_data.class.php on line 8
I teraz co chciałbym zrobić... Oddzielić szablon, od klasy pisząc w szablonie tylko $details['name'] a nie dodając do klasy:
Co robię źle?