next prev image

torreto

Registered
здравейте
имам следния код с който показвам следваща и предишна снимка

Код:
$id=$_GET['image'];

$select = mysql_query("SELECT `id` FROM `photos` order by id desc limit 1") or die (mysql_error());
$totalimages = mysql_fetch_array($select) or die (mysql_error()); 

$select2 = mysql_query("SELECT `id` FROM `photos` order by id asc limit 1") or die (mysql_error());
$totalimages2 = mysql_fetch_array($select2) or die (mysql_error()); 


if ($id == $totalimages[id]){
$pv = $id-1;
$pvpage = "<a href=?image=$pv> > </a>";

} elseif ($id == $totalimages2[id]){
$nv = $id+1;
$nextpage = "<a href=?image=$nv> < </a>";

} else {
$nv = $id+1;
$nextpage = "<a href=?image=$nv> < </a>";
$pv = $id-1;
$pvpage = "<a href=?image=$pv> > </a>";
}

по много нубски начин съм го направил... имам id на снимки 2,3,4,7,8,13. Примерно съм на снимка с id 3 и като дам на следваща или предишна снимка си работи, но ако съм примерно на 7 и дам на предишна снимка(id=6) ми дава грешка. Искам да попитам как ще стане така че да прескача несъществуващите id-та
 
Пробвай и така :
Код:
function VerifyImageID($id) 
{        
	$id_chek = mysql_query("SELECT * FROM `photos` WHERE `id`='{$id}';")or die(mysql_error());        
	return mysql_num_rows($id_chek)? 1 : 0; 
}
$id=$_GET['image'];
$select = mysql_query("SELECT `id` FROM `photos` order by id desc limit 1") or die (mysql_error());
$totalimages = mysql_fetch_array($select) or die (mysql_error()); 

$select2 = mysql_query("SELECT `id` FROM `photos` order by id asc limit 1") or die (mysql_error());
$totalimages2 = mysql_fetch_array($select2) or die (mysql_error()); 


if ($id == $totalimages[id] &&  VerifyImageID($id) == 1){
$pv = $id-1;
$pvpage = "<a href=?image=$pv> > </a>";

} elseif ($id == $totalimages2[id] &&  VerifyImageID($id) == 1){
$nv = $id+1;
$nextpage = "<a href=?image=$nv> < </a>";

} else {
$nv = $id+1;
$nextpage = "<a href=?image=$nv> < </a>";
$pv = $id-1;
$pvpage = "<a href=?image=$pv> > </a>";
}
 
Пробвай така:
PHP:
$next = mysql_fetch_array(mysql_query("SELECT id FROM photos WHERE id > '$id' ORDER BY id ASC LIMIT 1"));
$prev = mysql_fetch_array(mysql_query("SELECT id FROM photos WHERE id < '$id' ORDER BY id DESC LIMIT 1"));

HTML:
<a href ='?image=<?=$prev[id];?>'>Предишна снимка</a>
<a href ='?image=<?=$next[id];?>'>Следваща снимка</a>

Дано съм помогнал! :)
 
Най-лесно е да набухаш снимките в един масив, вместо да правиш постоянни заявки към базата данни. Така спокойно ще можеш да ползваш функциите next(), current(), prev(), reset() и т.н.
 

Горе