データベースにアップロードされたすべての画像が表示されるインデックスページがあります。特定のイメージをクリックすると、そのイメージに関するすべての情報を含むページに送られます。今、私はその情報ページにPrevious/Nextボタンを追加して、データベースのPrevious/Next画像にあなたを送ります。あなたが最初に見ることができるように、私はURLからイメージのパスを取って、パスに基づいてIDを取得し、現在のイメージのIDを使用して前/次のイメージのパスを取得しようとします。私の次の画像ボタンは機能しますが、前のボタンは常にデータベースの最初の画像のパスを返します。だからnext-> next-> nextをクリックすると、すべての画像が正しい順序で実行されますが、前の画像をクリックすると最初の画像に送られます。なぜどんなアイデア?なぜ私のクエリはいつも私のテーブルの最初の画像のパスを返していますか?
<?php
$realImagePath = $_GET['image'];
$sql = "SELECT * FROM image WHERE path='$realImagePath'";
$result = mysqli_query($conn, $sql);
$getResult = mysqli_fetch_assoc($result);
$currentId = $getResult['id'];
$sql4 = "SELECT * FROM image WHERE id > $currentId LIMIT 1";
$result4 = mysqli_query($conn, $sql4);
$getResult4 = mysqli_fetch_assoc($result4);
$nextImagePath = $getResult4['path'];
$sql5 = "SELECT * FROM image WHERE id < $currentId LIMIT 1";
$result5 = mysqli_query($conn, $sql5);
$getResult5 = mysqli_fetch_assoc($result5);
$previousImagePath = $getResult5['path'];
echo "<div class='imageContainer'>"
."<h1>".$getResult['name'].'</h1>'
.'<img class="uploadedRealImg" src="uploads/'.$realImagePath .'" alt="Random image" />'."<br><br>"
."<a href='imageInfo.php?image=".$previousImagePath."'>Previous</a>"
."<a href='imageInfo.php?image=".$nextImagePath."'>Next</a><br>"
.$getResult['description']."<br><br>"
.$getResult['date']."<br><br>"
.$getResult['author']."<br><br></div>";
?>
あなたはそれが正しい値を追加するか、いないかどうかを知るように「前」ボタンで保存されているどの値を確認するためにチェックしましたか? また、パスとファイル名をテーブルに格納して、前後の値のidをそれらのイメージに格納するほうが意味があります。また、毎回ページをリフレッシュするのではなく、AJAXでこれをすべて行うのが理にかなっています。 – Difster
"値は"前の "ボタンに保存されていることはどういう意味ですか?前のボタンは私を同じページに送りますが、私は表示するはずの画像を差し引くURLの異なるパスを使用します。問題は、sql5クエリが常にID 1の画像のパスを返すことです。 –
これは、ページを更新してからやり直すためです。 – Difster