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

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スクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1373閲覧

PHP queryからprepareにすると表示されない

majka

総合スコア11

SQL

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

PHP

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

0グッド

0クリップ

投稿2020/04/05 09:31

編集2020/04/05 10:18

ページにsqlからデータ取得し、画面に表示させるプログラムで

PHP

1<?php 2require('dbconnect.php'); 3 4$lists = $db->query('SELECT * FROM to_pass_away ORDER BY id DESC'); 5?> 6<article> 7 <?php while ($list = $lists->fetch()): ?> 8 <p><?php print('名前: ' . $list['name'] . 'さん ' . ' ' . '出身: ' . $list['from_japan'] . ' ' . $list['age'] . '歳');?></p> 9 <time><?php print($list['created']); ?></time> 10 <hr> 11 <?php endwhile; ?> 12</article>

イメージ説明

と表示でき、5件以上の場合ページネートさせる為、

PHP

1<?php 2require('dbconnect.php'); 3 4$lists = $db->prepare('SELECT * FROM to_pass_away ORDER BY id DESC LIMIT ?, 5'); 5$lists->bindParam(1, $_REQUEST['page'], PDO::PARAM_INT); 6$lists->execute() 7?> 8<article> 9 <?php while ($list = $lists->fetch()): ?> 10 <p><?php print('名前: ' . $list['name'] . 'さん ' . ' ' . '出身: ' . $list['from_japan'] . ' ' . $list['age'] . '歳');?></p> 11 <time><?php print($list['created']); ?></time> 12 <hr> 13 <?php endwhile; ?> 14</article> 15

イメージ説明

prepareに変えたところ表示されなくなりました。
又、index.php?のみ不具合が発生します。

page=1の場合は表示できます。
イメージ説明
PHP初学の為、見様見真似で始めたものの解決策が見つからないので、ご教授頂ければ幸いです。
また、ここのコード無駄だよ、直した方がいいよという意見も受け付けていますので、参考にさせて頂ければと思います。

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

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

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

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

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

guest

回答2

0

6行目の$list->execute()が、正しくは$lists->execute()と思われます。

投稿2020/04/05 09:53

stringthread

総合スコア19

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

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

majka

2020/04/05 10:19

修正ありがとうございます。 変数を修正したものの、ページネーションが上手く起動してないみたいです。
guest

0

ベストアンサー

目に見えていないだけで、$_REQUEST['page']の部分でエラーがでているはずです。
URLクエリパラメーター(page=1)が無い場合、実行されるSQLはどうなるか想像してみてください。
$_REQUEST['page']が無い場合でもデフォルト値を渡す必要があるように思えます。

ちなみに、get送信されているようなので、$_REQUEST['page']ではなく
$_GET['page']が適切かと思います。

投稿2020/04/05 13:23

mackintosh

総合スコア228

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

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

majka

2020/04/05 14:25

page=がないindex.phpのみだとデータが渡されないということですね デフォルト分はif文を用いた感じですかね?
mackintosh

2020/04/05 14:28

そうです。 $_REQUEST['page']がなかったらこの数字を渡すというような処理を加えれば解決するはずです。
majka

2020/04/05 20:29 編集

ご指摘通り if (isset($_REQUEST['page'])) { $page = $_REQUEST['page']; } else { $page = 1; } とデフォルト値を1にしたところ無事動作しました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問