質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

Q&A

解決済

2回答

3804閲覧

PHPでDBのデータをテーブルに表示したい。

Ika3242

総合スコア14

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

0グッド

0クリップ

投稿2017/09/25 09:10

###前提・実現したいこと
PHPでDBにあるデータをテーブルに表示したいです。
PHPの勉強の一環でDBのデータをテーブルに表示したいと思っています。
上のPHPがコントローラー、下のPHPがビューになります。
ビュー表示後のソースを見る限り、データは受け渡しはできているのですが、テーブルの<td>の部分に値が表示されません。
データを渡せているということはコントローラーは問題なく、ビューの表記が間違っているのではと考えています。
何卒ご教授お願いいたします。

PHP

1<?php 2defined('BASEPATH') OR exit('No direct script access allowed'); 3 4class menu extends CI_Controller { 5 6 public function index() 7 { 8 9 $this->load->database(); 10 $query = $this->db->query('SELECT * FROM test'); 11 $data = array(); 12 13 foreach ($query->result() as $row) 14 { 15 $data['test'][] = array('A'=>$row->A, 'B'=>$row->B, 'C'=>$row->C, 'D'=>$row->D); 16 } 17 $this->load->view('test', $data); 18 } 19} 20?>

PHP

1<!DOCTYPE html> 2<html xmlns="http://www.w3.org/1999/xhtml"> 3<head> 4<meta charset="UTF-8"> 5<link rel='stylesheet' type='text/css' href='/css/common.css'> 6</head> 7<body> 8 <header> 9 <h2 class="page-title"> 10 test 11 </h2> 12 </header> 13 <div class="scroll-table-wrap"> 14 <table> 15 <thead> 16 <tr> 17 <th>A</th> 18 <th>B</th> 19 <th>C</th> 20 <th>D</th> 21 </tr> 22 </thead> 23 <tbody> 24 <tr> 25<?php 26 foreach ($data as $key => $value): 27 echo "<td>".$value['A']."</td>"; 28 echo "<td>".$value['B']."</td>"; 29 echo "<td>".$value['C']."</td>"; 30 echo "<td>".$value['D']."</td>"; 31 endforeach; 32?> 33 </tr> 34 </tbody> 35 </table> 36 </div> 37</body> 38</html>

###発生している問題・エラーメッセージ
DBのデータが表示されない。

###補足情報(言語/FW/ツール等のバージョンなど)
MAMP
Codelgniter

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

CodeIgniter の view では、$data は展開されているはずなので、

php

1foreach ($test as $key => $value):

でイケると思います。

投稿2017/09/25 09:33

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ika3242

2017/09/26 00:59

回答ありがとうございます。 foreach ($data as $key => $value):→foreach ($test as $key => $value): にすることでデータを表示することができました。ありがとうございました。
guest

0

$data['test'][] = ・・・

としているなら$dataの起点は $data['test']になるので

foreach ($data as $key => $value):
↓↓↓
foreach ($data["test"] as $key => $value):

ですよね

foreach ($data["test"] as $vals){ foreach($vals as $val){ echo "<td>".htmlspecialchars($val)."</td>"; } }

投稿2017/09/25 09:23

yambejp

総合スコア114784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ika3242

2017/09/26 01:00

2回foreachで表示するとは考えつきませんでした。。。 参考になります。回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問