2013-07-25 3 views
0

Я запустил сайт для размещения изображений, и я столкнулся с проблемой. Я хочу сделать 2 кнопки рядом с рисунком, например, «Следующее изображение» и «Пред. Изображение». Я довольно новичок в php/mysql и испытываю некоторые проблемы.Навигация по строкам databse

Проверьте, что я получил. Я использую 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://mysite.com/view_image/<?=$next?>">Next image</a> 
<a href="http://mysite.com/view_image/<?=$prev?>"> Prev image </a> 

ответ

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" 
+0

А, ок, я вижу. $ current_img_id => $ row ["imageID"]; Правильно? – VladL

+0

should not imageID> $ current_img_id be imageID <$ current_img_id для предыдущего случая изображения? – Maximus2012

+0

@ # ВладЛ: Да. @ Maxumus2012: да, спасибо, исправил его – Martijn

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"); 

и посмотреть, если это работает.

+0

$ image_main - настоящее имя изображения. Мне нужно получить имя изображения, его всегда отличное – VladL

+0

ok ... это имеет смысл. Можете ли вы повторить значения $ prev и $ next, которые вы получаете в своем коде выше? что поможет в отладке. – Maximus2012

+0

Но разве мы не должны устанавливать переменные? – VladL

Смежные вопросы