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

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

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

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

PHP

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

Q&A

解決済

1回答

3498閲覧

SQLite3 のDB上に格納されたデータを、PHP を使ってブラウザ上に<TABLE>タグで表示したい

TsuyoshiOshima

総合スコア13

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

PHP

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

0グッド

0クリップ

投稿2016/06/12 06:53

以下のコードを作成しました。

PHP

1<?php 2// 変数定義 3$title = array('人間失格', '羅生門', '山月記'); 4$author = array('太宰治', '芥川龍之介', '中島敦'); 5 6// 前回のDBを削除 7unlink('./booklist.db'); 8 9// 今回のDBに接続(DBが存在しない場合はを新規作成して接続) 10try { 11$db = new SQLite3("./booklist.db"); 12echo "接続されました。"; 13} catch (Exception $e) { 14echo 'DBへの接続でエラーが発生しました。'; 15echo $e->getTraceAsString(); 16} 17 18// TABLE 作成 19$db->exec("CREATE TABLE booklist (title text, author text)"); 20 21// DBに変数をINSERT 22for ($i=0; $i < 3; $i++) { 23 $stmt = $db->prepare("INSERT INTO booklist (title, author) VALUES (?, ?)"); 24 $stmt->bindValue(1, $title[$i], SQLITE3_TEXT); 25 $stmt->bindValue(2, $author[$i], SQLITE3_TEXT); 26 $stmt->execute(); 27}

この結果 SQLite3 のDB上には以下のように格納できました。

イメージ説明

今度は、このDB上の各データを <TABLE>タグでブラウザ上で表示したいと考えています。

DBからデータを取得するところは、下記でうまくいくのではないかと考えているのですが(*1)、

PHP

1$results = $db->query('SELECT * FROM booklist');

その後、どのようにデータを画面に出力すればいいかのが試行錯誤中です。

最終的には

PHP

1echo '<table>'; 2for ($i = 0; $i <3; $i++) { 3 echo '<tr><td>'.$title[$i].'</td><td>'.$author[$i].'</td></tr>'; 4} 5echo '</table>';

みたいな感じに持っていければと考えているのですが。

**- Q1.そもそもDBへの格納の仕方が悪い?

  • Q2.DBからデータを取得する部分(*1)がおかしい?
  • Q3.for文を使った画面出力の仕方がおかしい?**

参考になるようなサイトを教えていただくだけでも大変助かります。
よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Q1.格納の仕方はいろいろあると思います。今回の方法でも正解でしょうし、別にマスターがあってとかのやり方も正解でしょうし。

Q2.select自体は良いんじゃないでしょうか?

Q3.も考え方は大丈夫かと

私がよくやる方法

MySQL

1$rows = $stmt->fetchAll(); 2$cnt = count($rows); 3for($i = 0;$i < $cnt;$i++){ 4$title = $rows[$i]['title']; 5} 6

こんな感じにして、あとはtableを作成ですかね。

投稿2016/06/12 07:23

Z-TALBO

総合スコア525

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

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

TsuyoshiOshima

2016/06/14 12:41

アドバイス、ありがとうございました。 おかげさまで何とかテーブルを表示できることができました。 データベースはまだ触り始めたばかりなので分からないことばかりですが、もっぱら独学なのでこうやってアドバイスをいただけると大変助かります。 //レコードの抽出 $stmt = $db->query("SELECT * FROM booklist"); $rows = $stmt->fetchAll(); $cnt = count($rows); echo '<table border="1">'; for($i = 0;$i < $cnt;$i++){ $title = $rows[$i]['title']; $author = $rows[$i]['author']; echo '<tr><td>'.$title.'</td><td>'.$author.'</td></tr>'; } echo '</table>';
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問