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

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

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

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

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

Q&A

解決済

2回答

2330閲覧

【PHP】PHP句ではprint_rされる配列が、HTML内のPHP句ではprint_rされない

zoizoi

総合スコア11

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

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

0グッド

0クリップ

投稿2017/05/17 15:55

###前提・実現したいこと
SQLのテーブルに登録したIDとパスワードを、HTMLのtable内に表示させるのが最終目標です。
login_idとlogin_passがある限り、<tr>を表示させるという処理を

<?php while(isset(login_id)):?>

みたいな感じで実現できないかと考えています。

###発生している問題・エラーメッセージ
エラーメッセージはないのですが、表題の通り、HTML内にPHPでprint_rした場合でのみ配列が表示されません。
###該当のソースコード

PHP

1下記のprint_pre($re)は値を返してくれます。 2 3$stmt3 =$pdo->query('SELECT 4login_no, 5login_id, 6login_pass 7FROM login_member'); 8while($re = $stmt3->fetch(PDO::FETCH_ASSOC)){ 9 print_pre($re); 10} 11 12しかし、下記の様にHTML内に書いたものは、エラーは吐きませんが、 13値は返してくれません。 14 15<?php while($re = $stmt3->fetch(PDO::FETCH_ASSOC)):?> 16<?php print_pre($re);?> 17<?php endwhile;?> 18

###試したこと
HTML内での下記のコードは、値が帰ってきました。

<?php print_r($stmt3);?>

帰ってきた値
PDOStatement Object ( [queryString] => SELECT login_no, login_id, login_pass FROM login_member )

また、下記のコードは返ってきませんでした。

<?php $re = $stmt3->fetch(PDO::FETCH_ASSOC);?> <?php print_r($re);?>

わかりづらい所、至らぬ所があったら是非ご指摘ください。

ご教授宜しくお願い致します。

###補足情報(言語/FW/ツール等のバージョンなど)
FWは使っていません

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

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

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

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

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

guest

回答2

0

ベストアンサー

これでは?

php

1下記のprint_pre($re)は値を返してくれます。<br> 2<?php 3//似たような構造のDBにてテスト 4$stmt3=$pdo->query('SELECT id FROM login_row'); 5while($re=$stmt3->fetch(PDO::FETCH_ASSOC)){ 6 print_pre($re); 7} 8?> 9<hr> 10<?php print_r($stmt3);?> 11<hr> 12しかし、下記の様にHTML内に書いたものは、エラーは吐きませんが、<br> 13値は返してくれません。<br> 14<?php 15//似たような構造のDBにてテスト 16$stmt3=$pdo->query('SELECT id FROM login_row'); 17?> 18<?php while($re=$stmt3->fetch(PDO::FETCH_ASSOC)): ?> 19<?php print_pre($re);?> 20<?php endwhile;?> 21 22<?php 23function print_pre ($expression, $return = false, $wrap = false) 24{ 25 $css = 'border:1px dashed #06f;background:#69f;padding:1em;text-align:left;'; 26 if ($wrap) { 27 $str = '<p style="' . $css . '"><tt>' . str_replace( 28 array(' ', "\n"), array('&nbsp; ', '<br />'), 29 htmlspecialchars(print_r($expression, true)) 30 ) . '</tt></p>'; 31 } else { 32 $str = '<pre style="' . $css . '">' 33 . htmlspecialchars(print_r($expression, true)) . '</pre>'; 34 } 35 if ($return) { 36 if (is_string($return) && $fh = fopen($return, 'a')) { 37 fwrite($fh, $str); 38 fclose($fh); 39 } 40 return $str; 41 } else 42 echo $str; 43} 44?>

イメージ説明

投稿2017/05/17 23:49

編集2017/05/19 00:10
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

zoizoi

2017/05/19 12:51

すいません回答をよく読んでおらず、ご回答の意味に今気が付きました! そしてHTML句に以下の部分を追加した所、うまくいきました! <?php //似たような構造のDBにてテスト $stmt3=$pdo->query('SELECT id FROM login_row'); ?> QUERYは一度使われたらその都度入れ直してあげる必要があるって事みたいですね。 ありがとうございました!
退会済みユーザー

退会済みユーザー

2017/05/19 13:53

そうみたいですね 私も知りませんでした
guest

0

テーブルにレコードがなくて、ループ内に入っていないとか?

投稿2017/05/18 00:26

ttyp03

総合スコア16996

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

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

zoizoi

2017/05/18 14:14

ご回答ありがとうございます。 いえ、SHOW TABLES でレコードは確認出来たのでレコードはあります。
ttyp03

2017/05/18 23:31

SHOW TABLES だとテーブル名の一覧ですが、SHOW TABLE STATUS の間違いでしょうか。 質問に挙げているSELECT文ではどうでしょうか? レコードは返ってきますか?
zoizoi

2017/05/19 12:28

SHOE TABLES ではなくてSELECT文の間違いでしたすいません・・・。 SELECT文で指定したカラムは返ってきているので、テーブルにレコードは存在しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問