現在PHPでMVCの勉強をしています。
MVCを使用してdrinkテーブルから値を取得した配列を表示したいです。
現段階では
$pdo = new PDO(dsn, DB_USER, DB_PASSWD); $stmt = $pdo->prepare('SELECT * FROM drink'); $stmt->execute(); $sql = $stmt -> fetchAll(PDO::FETCH_ASSOC); var_dump($sql);
を実行すると以下のような配列が取得できます。
sql
1array(4) { [0]=> array(4) { ["id"]=> string(1) "1" ["drink_name"]=> string(3) "tea" ["price"]=> string(3) "100" ["status"]=> string(1) "1" } [1]=> array(4) { ["id"]=> string(1) "2" ["drink_name"]=> string(5) "water" ["price"]=> string(2) "50" ["status"]=> string(1) "1" } [2]=> array(4) { ["id"]=> string(1) "3" ["drink_name"]=> string(4) "cola" ["price"]=> string(3) "150" ["status"]=> string(1) "1" } [3]=> array(4) { ["id"]=> string(1) "4" ["drink_name"]=> string(5) "juice" ["price"]=> string(3) "130" ["status"]=> string(1) "1" } }
しかし、ControllerでModelで作成したsql()関数を呼び出して取得することができません。
初歩的な質問ですがご教授よろしくお願いいたします。
以下、Model, View, Controllerのファイルです。
↓Model
php
1<?php 2require_once('const.php'); 3 4function h($str){ 5 print htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); 6} 7 8function sql(){ 9 $pdo = new PDO(dsn, DB_USER, DB_PASSWD); 10 $stmt = $pdo->prepare('SELECT * FROM drink'); 11 $stmt->execute(); 12 $sql = $stmt -> fetchAll(PDO::FETCH_ASSOC); 13 return $sql; 14}
↓View
html
1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="utf-8" /> 5 <title>テスト</title> 6</head> 7<body> 8 <?php print sql(); ?> 9</body> 10</html>
↓Controller
php
1<?php 2require_once('model.php'); 3require_once('const.php'); 4 5sql(); 6 7include_once('top_view.php');
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/09/04 16:17
退会済みユーザー
2018/09/04 16:27
退会済みユーザー
2018/09/05 01:19
退会済みユーザー
2018/09/05 07:35