Pagination Problem

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Chris H

    Pagination Problem

    I am having a problem with pagination, basically the problem is happening in
    the "PREV / NUMBERS / NEXT" links, it appears as if the reason is becasue
    the increment and decrement operators aren't functioning or the $page
    variable isnt working in that part of the code... Below is the link to the
    working but broken page.. as well as the main part of my code... Hopefully
    someone can explain why the operators arent working or maybe see what i am
    overlooking.

    LINK: http://movies.evilacid.com

    Note: most pagination code will be between
    ########
    //comment
    CODE
    #######

    PHP Code:
    =============== =============== ====
    <?php

    require ('config.php');

    if (!function_exis ts('connect_to_ mysql')){

    function connect_to_mysq l(){

    global $db_location,$d b_username,$db_ password,$db_da tabas
    e;

    $conn =
    mysql_connect(" $db_location"," $db_username"," $db_password");
    if (!$conn) die("Error: " . mysql_error());
    mysql_select_db ($db_database,$ conn) or die("Error: " .
    mysql_error());

    return;
    }
    }

    if (!function_exis ts('error_messa ge')){

    function error_message($ text){

    echo"<p align='left' class='errortex t'><br><b><span
    style='backgrou nd-color: #FF6666'>Error: </span></b><br>$text</p>";

    return;

    }

    }
    ############### ############### ############### #####
    ############### ###############

    function list_all($cat,$ sortby,$char,$p age,$pageprev){
    global $title;
    ############### ############### #
    // part of pagination code
    $limit = 25;
    if(!$page){
    $page = 1;
    }
    ############### ############### ##

    $how_many = mysql_num_rows( mysql_query("SE LECT * FROM moviedb"));

    echo "<table width=\"820\" border=\"0\" cellspacing=\"0 \"
    cellpadding=\"0 \">";
    echo "<tr><td><cente r><font size=\"6\">$tit le</font></center></td></tr>";
    echo "<tr><td><cente r>Currently $how_many movies in
    database</center></td></tr>";
    echo "<tr><td><cente r><br>";
    echo quick_links();
    echo "</center></td></tr>";
    echo "</table>\n";
    echo "<table width=\"820\" border=\"1\" cellspacing=\"0 \"
    cellpadding=\"0 \">";
    echo "<tr>";
    echo "<th width=\"35\" bgcolor=\"66ccf f\"></th>";
    echo "<th width=\"400\" bgcolor=\"66ccf f\"><strong>< a
    href=\"index.ph p?t=&sortby=tit le\">Movie Title</a> </strong></th>";
    echo "<th width=\"260\" bgcolor=\"66ccf f\"><strong>< a
    href=\"index.ph p?t=&sortby=rat ing\">Rating</a></strong></th>";
    echo "<th width=\"125\" bgcolor=\"66ccf f\"><strong>< a
    href=\"index.ph p?t=&sortby=cat \">Genre</a></strong></th>";
    echo "</tr>";

    connect_to_mysq l();

    ############### ############### ####
    //pagination code
    $limitvalue = $page * $limit - ($limit);
    ############### ############### ####
    if ($sortby == "") {
    $sql = mysql_query("SE LECT * FROM moviedb ORDER BY title ASC LIMIT
    $limitvalue, $limit");
    $q_count = mysql_query("SE LECT * FROM moviedb");
    $totalrows = mysql_num_rows( $q_count);
    }
    elseif ($sortby == "recent") {
    $sql = mysql_query("SE LECT * FROM moviedb ORDER BY date DESC LIMIT
    $limitvalue, $limit");
    $q_count = mysql_query("SE LECT * FROM moviedb");
    $totalrows = mysql_num_rows( $q_count);
    }
    elseif ($sortby == "alpha") {
    $sql = mysql_query("SE LECT * FROM moviedb WHERE alpha LIKE '$char' ORDER
    BY title ASC LIMIT $limitvalue, $limit");
    $q_count = mysql_query("SE LECT * FROM moviedb WHERE alpha LIKE
    '$char'");
    $totalrows = mysql_num_rows( $q_count);
    }
    elseif ($sortby == "genre") {
    $sql = mysql_query("SE LECT * FROM moviedb WHERE cat LIKE '$cat' ORDER BY
    title ASC LIMIT $limitvalue, $limit");
    $q_count = mysql_query("SE LECT * FROM moviedb WHERE cat LIKE '$cat'");
    $totalrows = mysql_num_rows( $q_count);
    }
    elseif ($sortby == "title") {
    $sql = mysql_query("SE LECT * FROM moviedb ORDER BY title ASC LIMIT
    $limitvalue, $limit");
    $q_count = mysql_query("SE LECT * FROM moviedb");
    $totalrows = mysql_num_rows( $q_count);
    }
    elseif ($sortby == "rating") {
    $sql = mysql_query("SE LECT * FROM moviedb ORDER BY rating DESC LIMIT
    $limitvalue, $limit");
    $q_count = mysql_query("SE LECT * FROM moviedb");
    $totalrows = mysql_num_rows( $q_count);
    }
    elseif ($sortby == "cat") {
    $sql = mysql_query("SE LECT * FROM moviedb ORDER BY cat ASC LIMIT
    $limitvalue, $limit");
    $q_count = mysql_query("SE LECT * FROM moviedb");
    $totalrows = mysql_num_rows( $q_count);
    }

    $bgcolor = "#E0E0E0"; // light gray
    $result = $sql;
    $z = 1;
    while($rs = mysql_fetch_arr ay($result)) {
    if ($bgcolor == "#E0E0E0"){
    $bgcolor = "#FFFFFF";
    }else{
    $bgcolor = "#E0E0E0";
    }
    $alpha = $rs['alpha'];
    $title = $rs['title'];
    $link = $rs['link'];
    $rating = $rs['rating'];
    $ratingf = format_rating($ rating);
    $category = $rs['cat'];
    $stars = get_stars($rati ng);

    echo "<tr>";
    echo "<td width=\"35\" bgcolor=\"$bgco lor\"><center>$ z</center></td>";
    echo "<td width=\"400\" bgcolor=\"$bgco lor\"><a
    href=\"$link\"> $title</a></td>";
    echo "<td width=\"260\" bgcolor=\"$bgco lor\">$stars ($ratingf)</td>";
    echo "<td width=\"125\"
    bgcolor=\"$bgco lor\"><center>$ category</center></td>";
    echo "</tr>\n";
    $z++;
    }
    echo "</table>\n";
    ############### ############### ############### ##### #
    //PAGINATION LINKS STARTS HERE
    if($page != 1){
    $pageprev = $page--;

    echo("<a href=\"index.ph p?t=&page=$page prev\">PREV".$l imit."</a> ");
    }else{
    echo("PREV".$li mit." ");
    }

    $numofpages = $totalrows / $limit;

    for($i = 1; $i <= $numofpages; $i++){
    if($i == $page){
    echo($i." ");
    }else{
    echo("<a href=\"index.ph p?t=&page=$i\"> $i</a> ");
    }
    }


    if(($totalrows % $limit) != 0){
    if($i == $page){
    echo($i." ");
    }else{
    echo("<a href=\"index.ph p?t=&page=$i\"> $i</a> ");
    }
    }

    if(($totalrows - ($limit * $page)) > 0){
    $pagenext = $page--;

    echo("<a href=\"index.ph p?t=&page=$page next\">NEXT".$l imit."</a>");
    }else{
    echo("NEXT".$li mit);
    }
    ############### ############### ############### #

    return;

    }

    //was browse_by_cat()
    function quick_links(){

    print <<<EOF
    <center>
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse:
    collapse" bordercolor="#1 11111" width="820" id="AutoNumber1 ">
    <tr>
    <td width="100">
    <form action='$_SERVE R[PHP_SELF]' method='get' name="form">
    <input type='hidden' name='t' value=''>
    <input type='hidden' name='sortby' value='genre'>
    <select name="cat" size="1" id="cat" onchange="this. form.submit();" >
    <option value="" selected>Browse By Genre</option>
    <option value="%">All Movies</option>
    <option value="action"> Action</option>
    <option value="adventur e">Adventure </option>
    <option value="animatio n">Animation </option>
    <option value="biograph y">Biography </option>
    <option value="comedy"> Comedy</option>
    <option value="crime">C rime</option>
    <option value="document ary">Documentar y</option>
    <option value="drama">D rama</option>
    <option value="educatio nal">Educationa l</option>
    <option value="family"> Family</option>
    <option value="fantasy" >Fantasy</option>
    <option value="horror"> Horror</option>
    <option value="music">M usic</option>
    <option value="musical" >Musical</option>
    <option value="mystery" >Mystery</option>
    <option value="romance" >Romance</option>
    <option value="scifi">S ci-Fi</option>
    <option value="short">S hort</option>
    <option value="sport">S port</option>
    <option value="tv">Tele vision</option>
    <option value="thriller ">Thriller</option>
    <option value="war">War </option>
    <option value="western" >Western</option>
    </select>
    </form>
    </td>
    <td width="150">
    <form action='$_SERVE R[PHP_SELF]' method='get'>
    <input type='hidden' name='t' value=''>
    <input type='hidden' name='sortby' value='alpha'>
    <select name="char" size="1" onchange="this. form.submit();" id="char" >
    <option value="" selected>Browse Alphabetically</option>
    <option value="%" >List All</option>
    <option value="#" >Number</option>
    <option value="a" >A</option>
    <option value="b" >B</option>
    <option value="c" >C</option>
    <option value="d" >D</option>
    <option value="e" >E</option>
    <option value="f" >F</option>
    <option value="g" >G</option>
    <option value="h" >H</option>
    <option value="i" >I</option>
    <option value="j" >J</option>
    <option value="k" >K</option>
    <option value="l" >L</option>
    <option value="m" >M</option>
    <option value="n" >N</option>
    <option value="o" >O</option>
    <option value="p" >P</option>
    <option value="q" >Q</option>
    <option value="r" >R</option>
    <option value="s" >S</option>
    <option value="t" >T</option>
    <option value="u" >U</option>
    <option value="v" >V</option>
    <option value="w" >W</option>
    <option value="x" >X</option>
    <option value="y" >Y</option>
    <option value="z" >Z</option>
    </select>
    </form>
    </td width="300">
    <td><form action='$_SERVE R[PHP_SELF]' method='get'>
    <input type='hidden' name='t' value=''>
    <select name="sortby" size="1" onchange="this. form.submit();" id="char"[color=blue]
    >[/color]
    <option value="" selected>Sort By ----</option>
    <option value="" >Show all titles </option>
    <option value="recent" >Sort by recently added titles</option>
    </select>
    </form></td>
    <td>&nbsp;</td>
    </tr>
    </table>
    </center>
    EOF;

    return;
    }

    function format_rating($ rating){

    if ($rating == "01") { $ratingf= "1"; }
    elseif ($rating == "02") { $ratingf= "2"; }
    elseif ($rating == "03") { $ratingf= "3"; }
    elseif ($rating == "04") { $ratingf= "4"; }
    elseif ($rating == "05") { $ratingf= "5"; }
    elseif ($rating == "06") { $ratingf= "6"; }
    elseif ($rating == "07") { $ratingf= "7"; }
    elseif ($rating == "08") { $ratingf= "8"; }
    elseif ($rating == "09") { $ratingf= "9"; }
    elseif ($rating == "10") { $ratingf= "10"; }
    return $ratingf;
    }

    function get_stars($rati ng){
    global $star, $hstar;

    if ($rating == 1) { $stars="<img src=$star>"; }
    elseif ($rating == 2) { $stars="<img src=$star><img src=$star>"; }
    elseif ($rating == 3) { $stars="<img src=$star><img src=$star><img
    src=$star>"; }
    elseif ($rating == 4) { $stars="<img src=$star><img src=$star><img
    src=$star><img src=$star>"; }
    elseif ($rating == '5') { $stars="<img src=$star><img src=$star><img
    src=$star><img src=$star><img src=$star>"; }
    elseif ($rating == '6') { $stars="<img src=$star><img src=$star><img
    src=$star><img src=$star><img src=$star><img src=$star>"; }
    elseif ($rating == '7') { $stars="<img src=$star><img src=$star><img
    src=$star><img src=$star><img src=$star><img src=$star><img src=$star>"; }
    elseif ($rating == '8') { $stars="<img src=$star><img src=$star><img
    src=$star><img src=$star><img src=$star><img src=$star><img src=$star><img
    src=$star>"; }
    elseif ($rating == '9') { $stars="<img src=$star><img src=$star><img
    src=$star><img src=$star><img src=$star><img src=$star><img src=$star><img
    src=$star><img src=$star>"; }
    elseif ($rating == '10') { $stars="<img src=$star><img src=$star><img
    src=$star><img src=$star><img src=$star><img src=$star><img src=$star><img
    src=$star><img src=$star><img src=$star>"; }
    return $stars;
    }



    ############### ############### ############### #####
    ############### ###############


    ?>



  • Toby Inkster

    #2
    Re: Pagination Problem

    Chris H wrote:
    [color=blue]
    > $pageprev = $page--;[/color]

    This doesn't do what you think it does. What you have written is shorthand
    for:

    $pageprev = $page;
    $page = $page - 1;

    What you want is:

    $pageprev = $page - 1;

    Ditto with your use of ++.

    --
    Toby A Inkster BSc (Hons) ARCS
    Contact Me ~ http://tobyinkster.co.uk/contact

    Comment

    • Chris H

      #3
      Re: Pagination Problem

      thanks that worked

      "Toby Inkster" <usenet200603@t obyinkster.co.u k> wrote in message
      news:tpief3-v8b.ln1@ophelia .g5n.co.uk...[color=blue]
      > Chris H wrote:
      >[color=green]
      >> $pageprev = $page--;[/color]
      >
      > This doesn't do what you think it does. What you have written is shorthand
      > for:
      >
      > $pageprev = $page;
      > $page = $page - 1;
      >
      > What you want is:
      >
      > $pageprev = $page - 1;
      >
      > Ditto with your use of ++.
      >
      > --
      > Toby A Inkster BSc (Hons) ARCS
      > Contact Me ~ http://tobyinkster.co.uk/contact
      >[/color]


      Comment

      Working...