前提・実現したいこと
作製しているのは送られてきたメッセージをsql分に5件づつ表示するように制限かけて
ボタンを押すと+1,-1されるような形にしています。ただ、ページングをするための
$page_flag = 2;
if( !empty($_POST['next_press']) ) {
$page_flag += 1;
}
if( !empty($_POST['next_back']) ) {
$page_flag -= 1;
}
というところでページの値が固定されてしまい。今のところ、1ページと3ページしか映らない掲示板というごみ板になっております。
今悩んでいることとしてはページングをすることを目的に、
$page_flagの値をグローバル値にするためにはどうすればいいかということです!
該当のソースコード
<!DOCTYPE html> <html lang="ja"> <head> <?php try { $db = new PDO('mysql:dbname=c-pro;host=127.0.0.1;charset=utf8', 'root', '' ); } catch (PDOException $e) { echo "データベース接続エラー :".$e->getMessage(); } $page_flag = 2; //if文の値がローカル関数であることがトラブっている。=>値をグローバル値にするか if( !empty($_POST['next_press']) ) { $page_flag += 1; } if( !empty($_POST['next_back']) ) { $page_flag -= 1; } $start = 5 * ($page_flag - 1 ); if ($page_flag == 2 ) { $records = $db->query('SELECT * FROM contact ORDER BY number DESC LIMIT 1, 5'); }elseif($page_flag !==0 ) { $records = $db->prepare('SELECT * FROM contact ORDER BY number DESC LIMIT ?, 5'); $records-> bindParam(1, $start, PDO::PARAM_INT); $records ->execute(); } ?> <meta charset="utf-8"> <title>お問い合わせ受信ページ</title> </head> <!--メニューバー追加--> <body> <h1>お問い合わせ受信ページ</h1><h2><?php echo $page_flag?>.ページ目</h2> <article> <hr> <?php while( $record = $records->fetch()): ?> <p>名前:<?php print($record['S_NAME']);?></p> <p>要件:<?php print($record['message']);?></p> <time>送信時間:<?php print($record['mes_time']);?></time> <hr> <?php endwhile;?> </article> <form action="" method="post" > <input type="submit" name="next_press" value="次のページへ"> </form><br> <?php if($page_flag !==1):?> <form action="" method="post" > <input type="submit" name="next_back" value="前のページへ"> <?php endif;?> </form> </body> </html>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/02 15:42