2016-03-31 4 views
1

Я пытаюсь создать предыдущую и следующую запись гиперссылки на моей странице. Должна быть показана полная запись. Я очень хорошо это делаю, но после достижения первой записи или последней записи, если предыдущие или последние ссылки нажимаются, это дает мне ошибку. Как это решить. ТИА. мой кодКак получить первую и последнюю запись в php

$prevquery= "SELECT * FROM SKU_det WHERE bi_SKU < $SKU ORDER BY bi_SKU DESC LIMIT 1"; 
    $prevresult = mysql_query($prevquery) or die(mysql_error()); 
    while($prevrow = mysql_fetch_array($prevresult)) 
    { 
    $previd = $prevrow['bi_SKU']; 
    } 


$nextquery= "SELECT * FROM SKU_det WHERE bi_SKU> $SKU ORDER BY bi_SKU ASC LIMIT 1"; 
$nextresult = mysql_query($nextquery) or die(mysql_error()); 
while($nextrow = mysql_fetch_array($nextresult)) 
{ 
$nextid = $nextrow['bi_SKU']; 
} 
echo $SKU; 
if ($SKU==0){ 
    echo "<strong> < Previous</a>"; 
    echo "<strong> Next ></a>"; 
} 
else if($SKU<>0){ 
    echo "<a href='CopyAdd.php?SKU=$previd'><strong> < Previous</a>"; 
    echo "<a href='CopyAdd.php?SKU=$nextid'><strong> Next ></a>"; 
}` 

ответ

1

Чтобы помочь вы лучше кода, я внес некоторые изменения, потому что, если вы продолжите работу над примером wlalele, у вас скоро появятся проблемы с вложением Mysql и устаревшими функциями mysql.

if (isset($SKU)){ //check if SKU is set before creating query. 
    $prevquery= "SELECT bi_SKU FROM SKU_det WHERE bi_SKU < '" . mysql_real_escape_string($SKU). "' ORDER BY bi_SKU DESC LIMIT 1"; //escape external input 
    $prevresult = mysqli_query($prevquery) or die(mysqli_error()); 
    if ($prevresult && mysqli_num_rows($prevquery)){ // check if there is a result 
     $prevrow = mysqli_fetch_assoc($prevresult)) { // you are requesting 1 record, no need for while loop, also assoc array because you dont need array 
     $previd = $prevrow['bi_SKU']; 
    } 
    $nextquery= "SELECT bi_SKU FROM SKU_det WHERE bi_SKU > '" . mysql_real_escape_string($SKU). "' ORDER BY bi_SKU DESC LIMIT 1"; 
    $nextresult = mysqli_query($nextquery) or die(mysqli_error()); 
    if ($nextresult && mysqli_num_rows($nextresult)){ // check if there is a result 
     $nextrow = mysqli_fetch_assoc($nextresult)) { // you are requesting 1 record, no need for while loop, also assoc array because you dont need array 
     $nextid = $nextrow['bi_SKU']; 
    } 
    echo htmlSpecialChars($SKU); //make sure to escape external input 
    if (!isset($previd)){ 
    //only if a previd exists, show button 
    echo '<a href="CopyAdd.php?SKU='.$previd.'"><strong> &lt; Previous</strong></a>'; //corrected your html 
    } 
    if (!isset($nextid)){ 
    //only if a nextid exists, show button 
    echo '<a href="CopyAdd.php?SKU='.$nextid.'"><strong> Next &gt;</strong></a>'; //corrected your html 
    } 
} else { 
    echo 'No SKU set'; 
    //make a query to fetch first SKU and only show NEXT > for example. 
} 
+0

Большое спасибо Гаритье ... он работает так, как я хотел. – user3678823

+0

Добро пожаловать, пожалуйста, отметьте мой ответ как правильный, так как тот, кто приходит, не скопирует неправильный код. – Garytje

2

Вы должны проверить, если у вас есть $ previd (или $ NextID) Если вы не имеете один, только скрыть Prev (или следующий) ссылка

$prevquery= "SELECT * FROM SKU_det WHERE bi_SKU < $SKU ORDER BY bi_SKU DESC LIMIT 1"; 
$prevresult = mysql_query($prevquery) or die(mysql_error()); 
while($prevrow = mysql_fetch_array($prevresult)) 
{ 
    $previd = null; 
    if (array_key_exist('bi_SKU', $prevrow) && is_int($prevrow['bi_SKU'])) { 
    $previd = $prevrow['bi_SKU']; 
    } 
} 

$nextquery= "SELECT * FROM SKU_det WHERE bi_SKU> $SKU ORDER BY bi_SKU ASC LIMIT 1"; 
$nextresult = mysql_query($nextquery) or die(mysql_error()); 
while($nextrow = mysql_fetch_array($nextresult)) 
{ 
    $nextid = null; 
    if (array_key_exist('bi_SKU', $nextrow) && is_int($nextrow['bi_SKU'])) { 
    $nextid = $nextrow['bi_SKU']; 
    } 
} 
echo $SKU; 
if ($SKU==0){ 
    echo "<strong> < Previous</a>"; 
    echo "<strong> Next ></a>"; 
} 
else if($SKU<>0){ 
    if ($previd !== null) { 
     echo "<a href='CopyAdd.php?SKU=$previd'><strong> < Previous</a>"; 
    } 
    if ($nextid !== null) { 
     echo "<a href='CopyAdd.php?SKU=$nextid'><strong> Next ></a>"; 
    } 
}` 
Смежные вопросы