データベースに入っている画像をページャーを使って表示する時に2ページ目以降が表示されません。
もともと表示されていたのですが、wordpressの自サイトでの記事内画像のページングができないことに気づき、wordpress外でページを作ってテストしたところそこでも表示されなかったため、PHPの処理での問題ではないかと思っています。
データベースの画像はwordpressによって作られたテーブルではなく、同DB内に作った別のテーブルで管理しています。
PDOクラスを使って$sttに入れたデータが2ページ目に行くと空になってしまっています。
空にならずに2ページ目以降でもデータを表示させるためにはどのようにすれば良いでしょうか?
また、サーバやなにかのコンフィグが悪さをしてできていないということもありますでしょうか?
追記
wordpress外環境でのテストはPOSTでidを取得していたものが2ページ目に移行する際にPOSTしていなかったため、2ページ目以降が表示されていませんでした。
PHP
1<!DOCTYPE html> 2 3<head> 4 <meta charset="UTF-8"> 5</head> 6 7<body> 8 <?php 9 10 if (isset($_GET['page'])) { 11 $page = (int)$_GET['page']; 12 } else { 13 $page = 1; 14 } 15 16 if ($page > 1) { 17 $start = ($page * 33) - 33; 18 } else { 19 $start = 0; 20 } 21 22 $id = **********; 23 24 25 // PDOの接続 26 try { 27 $db = new PDO('mysql:host=localhost;*******;charset=utf8mb4', '*******', '*******'); 28 } catch (PDOException $e) { 29 die('エラーメッセージ:' . $e->getMessage()); 30 } 31 32 $stt = $db->prepare("SELECT * FROM table_name WHERE user_number_id = :user_number_id ORDER BY upload_date desc LIMIT {$start}, 33"); 33 $stt->bindValue(':user_number_id', $id, PDO::PARAM_STR); 34 $stt->execute(); 35 36 37 // 取得したデータを出力 38 foreach ($stt as $value) { 39 echo "<img src=\"" , $value["photos_url"] , ":small\">"; 40 } 41 42 43 //テーブルのpublish総データ件数を取得する 44 $page_num = $db->query("SELECT COUNT(*) FROM table_name WHERE user_number_id = $id"); 45 46 $page_num = $page_num->fetchColumn(); 47 48 //総ページの計算 49 $pagination = ceil($page_num / 33); 50 51 52 //ページネーション 53 $X = 0; 54 for ($x = $page; $x <= $pagination; ++$x) { 55 //現在のページより前の数字を表示 56 if ($page >= 2) { 57 //prevを表示 58 echo "<a href = \"?page=" , ($x - 1) , "\">"; 59 echo "Prev"; 60 echo "</a>"; 61 $i = 0; 62 for ($y = $page - 4; $y < $page; ++$y) { 63 if ($y > 0) { 64 if ($i < 2) { 65 echo "<a href = \"?page=" , $y , "\">"; 66 echo $y; 67 echo "</a>"; 68 ++$i; 69 } else { 70 echo "<a href = \"?page=" , $y , "\">"; 71 echo $y; 72 echo "</a>"; 73 } 74 } 75 } 76 } 77 //4つ次まで表示 78 if ($x <= $page + 3 && $x != 0) { 79 //現在のページ 80 if ($x == $page) { 81 echo "<div>" , $x , "</div>"; 82 $z = $x; 83 } 84 if ($x != $pagination) { 85 if ($j < 2) { 86 echo "<a href = \"?page=" , ($x + 1) , "\">"; 87 echo $x + 1; 88 echo "</a>"; 89 ++$j; 90 } else { 91 echo "<a href = \"?page=" , ($x + 1) , "\">"; 92 echo $x + 1; 93 echo "</a>"; 94 } 95 } 96 } 97 } 98 $x--; 99 //next表示 100 //LAST表示 101 if ($page != $pagination) { 102 echo "<a href = \"?page=" , ($z + 1) , "\">"; 103 echo "Next"; 104 echo "</a>"; 105 echo "<a href = \"?page=" , $x , "\">"; 106 echo "LAST"; 107 echo "</a>"; 108 } 109?> 110</body> 111 112 113</html>
回答1件
あなたの回答
tips
プレビュー