2016-03-31 20 views
1

Ich versuche, vorherige und nächste Datensatz Hyperlink auf meiner Seite zu erstellen. Der vollständige Datensatz muss angezeigt werden. Ich mache das sehr gut, aber nachdem ich den ersten oder letzten Datensatz erreicht habe, wenn der vorherige oder der letzte Link gedrückt wird, bekomme ich einen Fehler. Wie man das löst. TIA. mein CodeWie bekomme ich den ersten und letzten Datensatz in 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>"; 
}` 

Antwort

1

helfen Sie Code in einer besseren Weise, ich habe einige Änderungen vorgenommen, denn wenn Sie weiter an dem Beispiel wlalele gab, arbeiten, werden Sie bald Probleme mit Mysql Injektion und veraltete MySQL-Funktionen haben.

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

Vielen Dank Garytje ... es funktioniert genau so, wie ich es wollte. – user3678823

+0

Sie sind herzlich willkommen, bitte markieren Sie meine Antwort als die richtige, da jemand, der vorbeikommt, nicht die falsche Art von Code kopieren wird .. – Garytje

2

Sie müssen überprüfen, ob Sie einen $ previd (oder NextID $) Wenn Sie eine haben nicht verstecken einfach zurück (oder nächste) Link

$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>"; 
    } 
}` 
Verwandte Themen