忍者ブログ

からすまる日誌

20200410pm02 lunchテーブル

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

20200410pm02 lunchテーブル

この間の続き
lunch
 
privateとしてしまうと同じクラス(class Lunch{})からしか呼び出せない
コンストラクタもpublic
 
いま全体が
class Lunch{}であり、
そのなかに
public function __construct(){}や
public function getAllMenu(){}がある
 
内部とは
class Lunch{}のこと
 
エラーが出ましたがここ
$rows = $rs->fetchAll(PDO::FETCH_ASSOC);
$rs->が抜けているとフェイタルが出た 
 

じゃあメニューの名前だけを出力する
連想配列に入っているはず
 
 
なぜかfor文をかきつつif-endifをしていたりした 
$iを回す回数は
$i<count($arr)

list.php
 
<?php
require_once("class/lunch.class.php");
$obj = new Lunch();
$arr = $obj->getAllMenu();
//print_r($arr);
?>
<!DOCTYPE html>
<html lang="ja">
 <head>
  <meta charset="UTF-8">
  <title>ニューリスト</title>
  <link rel="stylesheet" href="css/style.css">
  <script src="../jquery-3.4.1.min.js"></script>
 </head>
 <body>
  <div id="container">
   <h1>new list</h1>
   <ul id="m_list">
     <!--方法1一番外側の階層([0~20])をぐるぐる回すよ、その中身をvalとするよ-->
     <?php foreach($arr as $val): ?>
      <li><?php echo $val["menu"]; ?></li>
     <?php endforeach; ?>
     
     <!--方法2 count関数を使うよ
     
     <?php for($i=0; $i<count($arr); $i++): ?>
     <li><?php echo($arr[$i]["menu"]); ?></li>
     <?php endfor ?> 
     
     -->   
   
   </ul>
  </div>
  
  
  <script src="js/lunch.js"></script>  
 </body>
</html>
 

lunch.class.php
 
<?php
class Lunch{
 private $pdo;//外から直接アクセスはできないように
 
 public function __construct(){//コンストラクタ。初期化されたときに動く
  // -----------------
  //環境によって変更
  // -----------------
  
  $host="localhost";
  $dbuser="root";
  $dbpass="";
  $dbname="lunch";
  // -----------------
  
  $dsn = "mysql:host={$host}; dbname={$dbname}; charset=utf8";
  $this->pdo=new PDO($dsn,$dbuser,$dbpass); //$pdoとは書かない
  
 }//constructの終わり
 
 public function getAllMenu(){//publicでないと外から呼び出せない
  $sql = "SELECT * FROM foods";
  $rs = $this->pdo->query($sql);
  $rows = $rs->fetchAll(PDO::FETCH_ASSOC);
  return $rows;//戻り値
 }
 
}
?>

メソッドはあまり複雑にせず
1つのことだけをやらせる
値を取るだけとか
 
PR

コメント

ブログ内検索

カレンダー

03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30