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

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

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

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

4012閲覧

SQLiteに格納している画像を表示する。

退会済みユーザー

退会済みユーザー

総合スコア0

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/08/11 08:39

前提・実現したいこと

sqliteに格納した相対パスから画像を表示させたい。

発生している問題・エラーメッセージ

sqliteにhumanテーブルを作成し画像を表示させるため相対パスを書いたのですが、うまく表示できません。

エラーメッセージ ```特にエラーはないです。 ### 該当のソースコード ```ここに言語名を入力 php,html,sql, ソースコード

phpのプログラムは

<?php // 変数の初期化 $db = null; $sql = null; $res = null; $row = null; $db = new SQLite3("test.db"); // データの取得 $sql = 'SELECT * FROM human where country="japan"'; $res = $db->query($sql); ?>

以下、htmlのbody

<?php while( $row = $res->fetchArray() ) { echo '<ul>' . '<a href="https://yahoo.co.jp" target=_brank>'. '<li>' . $row[0] . '<span>' , $row[1].'<span>', $row[2].'<span>',$row[3].'<span>', $row[4]. '<span>', $row[5].'<span>' , '<img src="$row[6]">'.'<span>' . '</li>'. '</a>' . '</ul>'; } ?>

こうなっています。

以下、humanテーブルです。

BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "human" (
"id" INTEGER NOT NULL,
"name" TEXT NOT NULL,
"sex" TEXT NOT NULL,
"age" INTEGER NOT NULL,
"prefecture" TEXT,
"country" TEXT NOT NULL,
"image" BLOB,
PRIMARY KEY("id")
);
INSERT INTO "human" VALUES (1,'中村静香','男',48,'千葉','japan','image/t1.jpg');
INSERT INTO "human" VALUES (2,'中村ゆり','女',45,'埼玉','japan',NULL);
INSERT INTO "human" VALUES (3,'本田翼','女',22,'','japan',NULL);
INSERT INTO "human" VALUES (4,'本田望結','男',16,'東京','japan',NULL);
INSERT INTO "human" VALUES (5,'綾瀬はるか','女',34,'東京','japan',NULL);
INSERT INTO "human" VALUES (6,'中村アン','男',38,'','usa',NULL);
INSERT INTO "human" VALUES (7,'広瀬アリス','女',26,'東京','japan',NULL);
INSERT INTO "human" VALUES (8,'有村架純','男',31,NULL,'usa',NULL);
INSERT INTO "human" VALUES (9,'長澤まさみ','女',29,NULL,'uk',NULL);
INSERT INTO "human" VALUES (10,'有村藍里','男',18,'埼玉','japan',NULL);
COMMIT;

試したこと

やってみたこと→'<img src="$row[6]">' こうしましたが、表示されませんでした。
$row['image'] など

補足情報(FW/ツールのバージョンなど)

サクラエディタ、db browser for sqloite

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

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

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

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

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

m.ts10806

2020/08/11 08:45

画像をどのように保存しているのでしょうか。BLOB型にパスを保管するのはあまりないと思うのですが。
退会済みユーザー

退会済みユーザー

2020/08/11 09:20

そうなのですか! blob型を選択しそのままパスを書いてしまっています。
m.ts10806

2020/08/11 09:22

質問編集してコードを追加してください。 また、コードはファイル毎にマークダウンのcode機能を利用してご提示ください
guest

回答1

0

ベストアンサー

問題は2つあります。

  1. BLOBのフィールドなのに、画像のパスがINSERTされてしまっています。

ソースを見る限りはバイナリが格納される事が前提になっているように思われます(バイナリを格納するよりはパスを格納する方が色々と優れているので、パスを格納すること自体が悪い訳では無く、設計とデータがちぐはぐになっている点が問題です。)

このDB設計とソースで進めるなら、まずはバイナリを格納しましょう。

  1. 変数展開の問題

PHP

1'<img src="$row[6]">'

PHP

1'<img src="'.$row[6].'">'

としてみてください。

うまく行ったら、修正前後で出力されているHTMLソースを見比べるてみてください。
修正前のものは$row[6]が編集展開されずにそのまま文字列としてHTMLに出力されてしまっているはずです。
シングルクォートで囲まれた変数の値は展開されません。

投稿2020/08/11 09:30

tanat

総合スコア18727

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

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

退会済みユーザー

退会済みユーザー

2020/08/12 00:07

本当にありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問