現在phpとmysqlで画像アップロードページをしてそ

Writer: admin Type: このテヒョンのiPhone Date: 2018-12-15 00:00
現在phpとmysqlで画像アップロードページをしてそれを写真アルバムみたいに画像を一覧にタイトルと一緒に並べるようにしたいのですが、画像の表示部分で困っているのでわかる方ご教授お願いします。概要として直接mysqlにバイナリデータを登録するのはよろしくないということなのでサーバ上にファイルを置いてそこに画像を保存してそのパスをデータとして格納するということにしました。現段階として画像をDBに登録できていて値もパスとして保存できているのですが表示がされない状態です。表示部分のphpのプログラムです<-----------------------------------------------------------------------------------------------------------------------------------<?phprequire 'common.php';try { $id = filter_input(INPUT_GET, 'id'); echo $id; // データベースからレコードを取得 $sql = "SELECT id, title, img_path FROM images WHERE id = :id"; $arr = []; $arr[':id'] = $id; $rows = select($sql, $arr); $row = reset($rows);} catch (Exception $e) { $error = $e->getMessage();}?><!DOCTYPE HTML><html lang="ja"> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .error { color: red; } </style> </head> <body> <div id="wrap"> <?php if (isset($error)) : ?> <p class="error"><?= h($error); ?></p> <?php endif; ?> <p><?= h($row['title']); ?></p> <p> <img src="<?= h($row['img_path']); ?>" alt="<?= h($row['title']); ?>" /> </p> </div> </body></html><-----------------------------------------------------------------------------------------------------------------------------------共感した0###>$rows = select($sql, $arr);>$row = reset($rows);selectとかresetとかいうユーザ定義関数の中身がわからないので、関数での処理に誤りがあっても使い方(呼び出し方)が間違っていてもわかりません。関数部分を提示してください。>この構文なのですが直接sqlを叩くとエラーが出るのですがprepareに渡す構文ですから(直接叩くなら):id の部分はGETで渡される値に置き替えないといけません。http://php.net/manual/ja/pdo.prepare.php提示されたソースでは$arr[':id'] に $id(filter_input(INPUT_GET, 'id')の結果を代入していますよね。それをselect関数の第2引数で渡しているので、ちゃんと処理されているハズです(推測でしかありませんが)。ナイス0
###この質問は投票によってベストアンサーに選ばれました!###> 表示がされない状態「表示されない」ではなく、どんな HTMLが出力されているかが肝心でしょう。__src="<?= h($row['img_path']); ?>" の部分> $rows = select($sql, $arr);$rows に配列で結果が取得出来ているのが前提ですが、確認されていますか?蛇足ですが、指定したIDが存在しなかったら、どうなるの?array(array('title'=>'', 'img_path'=>''))なんてのが返るならPHP的にはOKですが HTML的にはarray(array('title'=>'no image', 'img_path'=>'/img/no_image.jpg'))のようなモノじゃないとNGでは?ナイス0

 

TAG