SitePoint Sponsor

User Tag List

Results 1 to 2 of 2

Hybrid View

  1. #1
    SitePoint Zealot
    Join Date
    Jul 2000
    Posts
    132
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hi.
    I am trying to make a 'TOP 100' keywords script for my search engine, which launches in a few months.
    I have a system in PHP + MySQL which logs all teh keywords that have been searched for, and adds to their popularity every time they are searched for.

    Now, I would like to display a 'TOP 100' which allows users to scroll through all the top searches, ordered by popularity.
    This is easy enough, as it is just a matter of limiting it to 100, and 'ORDER BY' popularity. I can do that easily.
    But what I would like to do, is display a sort of results page menu:

    1-19 20-39 40-59 60-79 80-100

    I can do a page system easily, with values of Page 1, Page 2, Page 3, Page 4 etc...
    But I would like to know how to produce the correct numbers i.e. 1-19, using the least code possible.

    What I have so far is: (it probably needs scraping, I haven't been doing PHP for long, and it shows )

    Code:
    <table>
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("eliter");
    
    $limit = 20; 
    $numrows = 100;
    
    if (!isset($offset)) $offset=0; 
    
    $result = mysql_query("SELECT * FROM keywords ORDER BY popularity DESC LIMIT $offset, $limit");
    
    echo("<tr><td>");
    
    while ( $details = mysql_fetch_array($result) ) {
    
    $keyword = $details["keywords"];
    
    echo("
    <font class=twelvept><b>$num.</b> <a href='http://www.eliter.com/servlet/search?query=$keyword&where=web'>$keyword</a></font><br>
    ");
    }
    
    if ($numrows > $limit) { 
    // calculate number of pages needing links 
    $pages=intval($numrows/$limit); 
    // $pages now contains int of pages needed unless there is a remainder from division 
    if ($numrows%$limit) { 
    // has remainder so add one page 
    $pages++; 
    } 
    print '<br><font class=tenpt>Top 100 Keywords:&nbsp;&nbsp;'; 
    
    //Create the links 
    
    for ($i=1; $i <= $pages; $i++) { // loop thru 
    $newoffset=$limit*($i-1);
    
    if ($newoffset != $offset) { 
    printf('&nbsp;<a href="%s?offset=%s">%s</a>&nbsp;', $PHP_SELF, $newoffset, $i, "</font>"); 
    
    } else { 
    $lastresult=($newoffset-1)+$limit;
    $firstresult = $lastresult-19;
    print "&nbsp;<font class=tenptbold> $firstresult  - $lastresult </font>";
    
    }
    }
    } 
    ?>
    
    </table>
    You can see how I have tried..
    Also, what I am having a problem with, is giving each result a number according to where they are in the top 100.
    I tried the for statement, but couldn't get it to work with the while statement.
    CAn anyone offer any help?

    Thank alot.
    AJ

  2. #2
    SitePoint Zealot
    Join Date
    Jul 2000
    Posts
    132
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Someone? Please?!!

    Kevin Yank?
    Anyone!!!

    I really need some help on this asap
    Cheers.

    -aJ


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •