Jump to content

FreakOn

New Members
  • Posts

    1
  • Joined

  • Last visited

    Never

Profile Information

  • Gender
    Not Telling

FreakOn's Achievements

Newbie

Newbie (1/5)

0

Reputation

  1. Hi All, I wish to thank anybody willing to help with my problem. I have been scratching my head for days now and wish to put this to bed so maybe I can join it...! The Problem ++++++++++ Connecting to database and collecting results is not a problem, but attempting to paginate the results and then disply the returned results (product info) is a problem. Some searches can return upto 2000 results, with most returning +200 to 700 so the pages need paginating. So far the pagination appears to be working OK, but now I cannot get the product info to display on the page. $content is the display to the page. Any Help much appreciated. My Code +++++++ [code] <?php /*################################# Image Pop-Up Loader #################################*/ $content='<script type="text/javascript" src="assets/javascripts/image.js"></script> '; /*###################################### Connect to the Database ######################################*/ $db = new dblib; $db->connect_host(DB_SERVER, DB_USER, DB_PASS); /*##################################### Store the Search Choice in the user session Dependent on the Method used -> $_GET or $_POST #####################################*/ if($_GET){ if($_GET[gender]){ $_SESSION[st]='pr_sex'; $_SESSION[sc]=strtoupper($_GET[gender]); } if($_GET[range]){ $_SESSION[st]='pr_type'; $_SESSION[sc]=strtoupper($_GET[range]); } } if($_POST){ if($_POST[st]=="house"){ $_SESSION[st]='pr_house'; $_SESSION[sc]=strtoupper($_POST[house]); $_SESSION[maxresults]=$_SESSION[maxresults]; }else{ if($_POST[showresults]){ $_SESSION[maxresults]=$_POST[showresults]; $_SESSION[st]=$_SESSION[st];//'pr_house' $_SESSION[sc]=$_SESSION[sc]; }else{ $_SESSION[st]='pr_house'; $_SESSION[sc]=''; $_SESSION[maxresults]=$_SESSION[showresults]; } } } /*########################################### First Printed Page Element ###########################################*/ /*############################## PAGINATION SCRIPT ##############################*/ /*############################### Set current, prev and next page ###############################*/ $page = (!isset($_GET['page']))? 1 : $_GET['page']; $prev = ($page - 1); $next = ($page + 1); /*#################### Max results per page ####################*/ if(!$_SESSION[maxresults]){ $max_results = 25; }else{ $max_results = $_SESSION[maxresults]; } $maxresultsf=' <select name="showresults" onchange=maxresults.submit()> <option value="">select</option> <option value="5">5</option> <option value="10">10</option> <option value="15">15</option> <option value="20">20</option> <option value="25">25</option> <option value="30">30</option> <option value="35">35</option> <option value="40">40</option> <option value="45">45</option> <option value="50">50</option> <option value="75">75</option> <option value="100">100</option> <option value="150">150</option> <option value="200">200</option> </select> '; /*#################### Calculate the offset ####################*/ $from = (($page * $max_results) - $max_results); /*################################## POSSIBLE PROBLEM ##################################*/ $str_SQL="SELECT * FROM pr_list WHERE freestock > 0 AND ".$_SESSION[st]."='".$_SESSION[sc]."'"; /* echo '<br /><br />'; echo '&nbsp;Just Echoing to fault find<br />'; echo '&nbsp;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />&nbsp;'; echo $str_SQL.'<br />&nbsp;'; */ $result=$db->query_db("$dbconn",$str_SQL); $total_results = mysql_num_rows($result); $total_pages = ceil($total_results / $max_results); $pagination = '<div id="pagination">'; /*################################## Create a PREV link if there is one ##################################*/ if($page > 1){ $pagination .= '<a href="?st='.$_GET[st].'&sc='.$_SESSION[sc].'&page='.$prev.'" class="pagination"><<&nbsp;Previous</a>'; } /*############################ Loop through the total pages ############################*/ if($page > 1){ // Slip a dash - into the display if page number = more than 1 $slipin=' - '; } for($i = 1; $i <= $total_pages; $i++){ if(($page) == $i){ $pagination .= ''.$slipin.''.$i.''; }else{ $pagination .= ' - <a href="?st='.$_GET[st].'&sc='.$_SESSION[sc].'&page='.$i.'" class="pagination">'.$i.'</a>'; } } /*############################### Print NEXT link if there is one ###############################*/ if($page < $total_pages){ $pagination .= ' - <a href="?st='.$_GET[st].'&sc='.$_SESSION[sc].'&page='.$next.'" class="pagination">Next&nbsp;>></a>'; } /*########################################################### Now we have our pagination links in a variable($pagination) ready to print to the page. I put it in a variable because you may want to show them at the top and bottom of the page ###########################################################*/ /*##################################### Below is how you query the db for ONLY the results for the current page #####################################*/ //$result=mysql_query("select * from pr_list LIMIT $from, $max_results "); if($_GET[page]){ // REMOVED --> ORDER by pr_type ASC $result=mysql_query("SELECT * FROM pr_list WHERE ".$_SESSION[st]."='".$_SESSION[sc]."' AND freestock > 0 LIMIT $from, $max_results"); }else{ $result=mysql_query("SELECT * FROM pr_list WHERE ".$_SESSION[st]."='".$_SESSION[sc]."' AND freestock > 0 LIMIT $from, $max_results"); } if($_GET[sc]){ $thissc=$_GET[sc]; }else{ $thissc=$_SESSION[sc]; } // Close the Pagination and add a <p> to // keep firefox seperated from the results // IE seperates OK without the <p> (bugger) $pagination .= '</div><p>&nbsp;</p>'; /*######################### Start returning the results #########################*/ if(mysql_num_rows($result)>0){ /*################## ADDED ##################*/ $thisbrand=$rows[pr_brand]; if($total_results > 1){ $thes='s'; }else{ $thes=''; } if($total_results > $max_results){ $pagination=$pagination; }else{ $pagination=''; } $fromhowmany=$from + 1; $tohowmany=$from + $max_results; $content.='<strong>'.$_SESSION[sc].' Product Range</strong>&nbsp;&nbsp;('.$total_results.' product'.$thes.' found - showing product '.$fromhowmany.' to  '.$tohowmany.')<br /><br /> <form name="maxresults" method="post" action="search.'.$fext.'"> '.$maxresultsf.' &nbsp;Number of products per page ('.$max_results.')</form><br /> '.$pagination.''; // Populate the Fields $ptname=$rows[pr_desc]; while($i = mysql_fetch_array($result)){ $content.=' <blockquote id="searchreturn"> <div id="imbor">'.$primage.'</div><strong>'.$ptname.' '.$rows[pr_desc2].'</strong> <blockquote> <strong>brand:</strong> '.ucwords(strtolower($rows[pr_brand])).'<br /><br /> <strong>category:</strong> '.ucwords(strtolower($rows[pr_type])).' - '.ucwords(strtolower($rows[pr_sex])).'<br /><br /> <strong>price:</strong> £ '.$unitprice.' <div align="right"><a href="productorder.'.$fext.'?product='.base64_encode($rows[stockcode]).'" title="Order this product"><img src="assets/images/button_order.gif" alt="order" class="imgmiddle" align="right"></a></div> <p>&nbsp;</p> </blockquote> </blockquote> '; } $content.=' ('.$max_results.' items per page, '.$total_results.' '.$_SESSION[sc].' product'.$thes.' found - showing product '.$fromhowmany.' to  '.$tohowmany.')<br /><br /> '.$pagination.''; } ?> [/code]
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.