1. Advertising
    y u no do it?

    Advertising (learn more)

    Advertise virtually anything here, with CPM banner ads, CPM email ads and CPC contextual links. You can target relevant areas of the site and show ads based on geographical location of the user if you wish.

    Starts at just $1 per CPM or $0.10 per CPC.

What's Wrong with My Script?

Discussion in 'PHP' started by Masterful, Sep 16, 2008.

  1. #1
    Reputation points for anyone who helps. :)

    There's something wrong with my pagination script (below). It displays page navigation links like this:

    1 2 3 > >>

    The problem is, even if no results are returned from the database, the same navigation links are displayed:

    1 2 3 > >>

    If 2 or 3 are clicked, they lead to blank pages.

    I've played with $range but the problem remains. When $range is changed to 0, the navigation links display like the following, even if no results are returned:

    1 > >>

    When ">" or ">>" are clicked, they go to blank pages.

    Anyone know how I can fix this? If there are no results, I don't want links to blank pages.

    <?php  
    
    // database connection info  
    $conn = mysql_connect('localhost','root') or trigger_error("SQL", E_USER_ERROR);  
    $db = mysql_select_db('ctyi', $conn) or trigger_error("SQL", E_USER_ERROR);
       
    // find out how many rows are in the table   
    $sql = "SELECT COUNT(*) FROM table";  
    $result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);  
    $r = mysql_fetch_row($result);  
    $numrows = $r[0];  
       
    // number of rows to show per page  
    $rowsperpage = 5;  
    // find out total pages  
    $totalpages = ceil($numrows / $rowsperpage);  
       
    // get the current page or set a default  
    if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {  
    // cast var as int  
    $currentpage = (int) $_GET['currentpage'];  
    } else {  
    // default page num  
    $currentpage = 1;  
    } // end if  
       
    // if current page is greater than total pages...  
    if ($currentpage > $totalpages) {  
    // set current page to last page  
    $currentpage = $totalpages;  
    } // end if  
    // if current page is less than first page...  
    if ($currentpage < 1) {  
    // set current page to first page  
    $currentpage = 1;  
    } // end if  
       
    // the offset of the list, based on current page   
    $offset = ($currentpage - 1) * $rowsperpage; 
    
    // get the info from the db   
    $sql = "SELECT * FROM wherever LIMIT $offset, $rowsperpage"; 
    
    $result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);  
       
    if(mysql_num_rows($result) < 1)
    
    {
    echo "<p>No results.</p>";
    }
    
    else
    
    {
    
    while($row = mysql_fetch_assoc($result))
    {
    
    // echo data  
    echo "Results ";
    
    } // end while
    } // end else
    
    
    
    
    
    
    /******  build the pagination links ******/  
    
    // if not on page 1, show back links  
    if ($currentpage > 1) {  
    // show << link to go back to page 1  
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> ";  
    // get previous page num  
    $prevpage = $currentpage - 1;  
    // show < link to go back to 1 page  
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> ";  
    } // end if  
    
    // range of num links to show  
    $range = 3; 
      
    // loop to show links to range of pages around current page  
    for ($x = (($currentpage - $range) - 1); $x < (($currentpage + $range) + 1); $x++) {  
    // if it's a valid page number...  
    if (($x > 0) && ($x <= $totalpages)) {  
    // if we're on current page...  
    if ($x == $currentpage) {  
    // 'highlight' it but don't make a link  
    echo " [$x] ";  
    // if not current page...  
    } else {  
    // make it a link  
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> ";  
    } // end else  
    } // end if   
    } // end for  
               
    // if not on last page, show forward and last page links      
    if ($currentpage != $totalpages) {  
    // get next page  
    $nextpage = $currentpage + 1;  
    // echo forward link for next page   
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> ";  
    // echo forward link for lastpage  
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> ";  
    } // end if  
    
    /****** end build pagination links ******/  
    
    ?> 
    PHP:
     
    Masterful, Sep 16, 2008 IP
  2. kmap

    kmap Well-Known Member

    Messages:
    2,215
    Likes Received:
    29
    Best Answers:
    2
    Trophy Points:
    135
    #2
    db login and pass statements for db are missing

    this programming is not connecting to the db

    Regards

    Alex
     
    kmap, Sep 16, 2008 IP
  3. Masterful

    Masterful Well-Known Member

    Messages:
    1,653
    Likes Received:
    28
    Best Answers:
    0
    Trophy Points:
    140
    #3
    My connection to the database is fine. My question concerned the pagination links. Did you read my question? :confused:
     
    Masterful, Sep 16, 2008 IP