0

画像ホスティング サイトを運営していますが、問題が発生しました。「次の画像」と「前の画像」のように、写真の横に2つのボタンを作りたいです。私はphp/mysqlにかなり慣れていないので、いくつか問題があります。

私が得たものをチェックしてください。ID (数字) を使用して正しい行を見つけますが、次のリンクを作成するために画像名も取得する必要があります。以下のクエリで次と前の画像名と ID を取得するにはどうすればよいですか?

    $query_next = ("SELECT imageID, image_name FROM images WHERE image_name = '$image_main' ORDER BY imageID DESC LIMIT 1");

    $query_prev = ("SELECT imageID, image_name FROM images WHERE image_name = '$image_main' ORDER BY imageID ASC LIMIT 1");

// next
$next = mysql_query($query_next);
// prev
$prev = mysql_query($query_prev);

while ($row = mysql_fetch_assoc($next)) {
    $next = $row['image_name'];
}

while ($row = mysql_fetch_assoc($prev)) {
    $prev = $row['image_name'];
}

html = > シンプルなもの。

<a href="http://example.com/view_image/<?=$next?>">Next image</a>
<a href="http://example.com/view_image/<?=$prev?>"> Prev image </a>
4

2 に答える 2

0

同じ $image_name を渡しているため、両方のクエリが同じ画像をフェッチしています。

これを変える:

$query_next = ("SELECT imageID, image_name FROM images WHERE image_name = '$image_main_next' ORDER BY imageID DESC LIMIT 1");

$query_prev = ("SELECT imageID, image_name FROM images WHERE image_name = '$image_main_prev' ORDER BY imageID ASC LIMIT 1");

それが機能するかどうかを確認します。

于 2013-07-25T13:54:17.723 に答える
0

前のアイテムの場合、最初の行を現在の ID よりも小さくしたい:

"SELECT imageID, image_name FROM images WHERE imageID < $current_img_id ORDER BY imageID DESC LIMIT 1"

次のアイテムでは、最初の行を現在の ID よりも大きくしたい:

"SELECT imageID, image_name FROM images WHERE imageID > $current_img_id ORDER BY imageID ASC LIMIT 1"
于 2013-07-25T13:53:43.623 に答える