NSW42 Posted November 15, 2008 Share Posted November 15, 2008 Heya, Ive coded up a user gender age search script and with pagination, search works fine its the pagination im having trouble with, set max result doesnt seem to be working, its set on 5 but but will show over that amount set, if anyone has any ideas on whats wrong, would be appreciated. Regards <?php // Database Connection // If current page number, use it // if not, set one! if(!isset($_GET['page'])){ $page = 1; } else { $page = $_GET['page']; } // Define the number of results per page $max_results = 5; // Figure out the limit for the query based // on the current page number. $from = (($page * $max_results) - $max_results); $check = $_POST['check']; $gender = $_POST['gender']; $agemin = $_POST['agemin']; $agemax = $_POST['agemax']; if ($check == "") { print(" <form action='.$PHP_SELF' method='post' name=s_form onSubmit='document.s_form.s_submit.disabled=true'> I'm looking for a: <select name='gender'> <option value='Male'>Male</option> <option value='Female'>Female</option> </select> <br><br> Age Range: <select name='agemin'> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> <option value='24'>24</option> <option value='25'>25</option> <option value='26'>26</option> <option value='27'>27</option> <option value='28'>28</option> <option value='29'>29</option> <option value='30'>30</option> <option value='31'>31</option> <option value='32'>32</option> <option value='33'>33</option> <option value='34'>34</option> <option value='35'>35</option> <option value='36'>36</option> <option value='37'>37</option> <option value='38'>38</option> <option value='39'>39</option> <option value='40'>40</option> <option value='41'>41</option> <option value='42'>42</option> <option value='43'>43</option> <option value='44'>44</option> <option value='45'>45</option> <option value='46'>46</option> <option value='47'>47</option> <option value='48'>48</option> <option value='49'>49</option> <option value='50'>50</option> <option value='51'>51</option> <option value='52'>52</option> <option value='53'>53</option> <option value='54'>54</option> <option value='55'>55</option> <option value='56'>56</option> <option value='57'>57</option> <option value='58'>58</option> <option value='59'>59</option> <option value='60'>60</option> <option value='61'>61</option> <option value='62'>62</option> <option value='63'>63</option> <option value='64'>64</option> <option value='65'>65</option> <option value='66'>66</option> <option value='67'>67</option> <option value='68'>68</option> <option value='69'>69</option> <option value='70'>70</option> <option value='71'>71</option> <option value='72'>72</option> <option value='73'>73</option> <option value='74'>74</option> <option value='75'>75</option> <option value='76'>76</option> <option value='77'>77</option> <option value='78'>78</option> <option value='79'>79</option> <option value='80'>80</option> <option value='81'>81</option> <option value='82'>82</option> <option value='83'>83</option> <option value='84'>84</option> <option value='85'>85</option> <option value='86'>86</option> <option value='87'>87</option> <option value='88'>88</option> <option value='89'>89</option> <option value='90'>90</option> <option value='91'>91</option> <option value='92'>92</option> <option value='93'>93</option> <option value='94'>94</option> <option value='95'>95</option> <option value='96'>96</option> <option value='97'>97</option> <option value='98'>98</option> <option value='99'>99</option> </select> <input type='hidden' name='check' value='checked'> to <select name='agemax'> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> <option value='24'>24</option> <option value='25'>25</option> <option value='26'>26</option> <option value='27'>27</option> <option value='28'>28</option> <option value='29'>29</option> <option value='30'>30</option> <option value='31'>31</option> <option value='32'>32</option> <option value='33'>33</option> <option value='34'>34</option> <option value='35'>35</option> <option value='36'>36</option> <option value='37'>37</option> <option value='38'>38</option> <option value='39'>39</option> <option value='40'>40</option> <option value='41'>41</option> <option value='42'>42</option> <option value='43'>43</option> <option value='44'>44</option> <option value='45'>45</option> <option value='46'>46</option> <option value='47'>47</option> <option value='48'>48</option> <option value='49'>49</option> <option value='50'>50</option> <option value='51'>51</option> <option value='52'>52</option> <option value='53'>53</option> <option value='54'>54</option> <option value='55'>55</option> <option value='56'>56</option> <option value='57'>57</option> <option value='58'>58</option> <option value='59'>59</option> <option value='60'>60</option> <option value='61'>61</option> <option value='62'>62</option> <option value='63'>63</option> <option value='64'>64</option> <option value='65'>65</option> <option value='66'>66</option> <option value='67'>67</option> <option value='68'>68</option> <option value='69'>69</option> <option value='70'>70</option> <option value='71'>71</option> <option value='72'>72</option> <option value='73'>73</option> <option value='74'>74</option> <option value='75'>75</option> <option value='76'>76</option> <option value='77'>77</option> <option value='78'>78</option> <option value='79'>79</option> <option value='80'>80</option> <option value='81'>81</option> <option value='82'>82</option> <option value='83'>83</option> <option value='84'>84</option> <option value='85'>85</option> <option value='86'>86</option> <option value='87'>87</option> <option value='88'>88</option> <option value='89'>89</option> <option value='90'>90</option> <option value='91'>91</option> <option value='92'>92</option> <option value='93'>93</option> <option value='94'>94</option> <option value='95'>95</option> <option value='96'>96</option> <option value='97'>97</option> <option value='98'>98</option> <option value='99'>99</option> </select> <br><br> <input type='submit' value='Search!' name='s_submit'> "); } if ($check == "checked") { $sql = mysql_query("SELECT * FROM users WHERE gender = '$gender' AND age>='$agemin' AND age<='$agemax'") or die(mysql_error()); while($row = mysql_fetch_array($sql)) { $pronickx = $row[nickname]; $pronickp = bin2hex($row[nickname]); if ($row[pro_pic] == "") { $memberpic = 'images/nophotobig.gif'; } if ($row[pro_pic] != "") { $memberpic = $row[pro_pic]; } print(" <tr> <td class='content'><img src='$memberpic' border=0 width=100 height=100 ALIGN=LEFT> <A href='.php?epuid=$pronickp'target='_blank'>$pronickx</a> <font color='red'>$row[gender]</font><br><br> $row[age], $row[marital] - from $row[local]<br><br> <br><br><br><br> "); print (" </td> </tr> "); } } // Figure out the total number of results in DB: $total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM users WHERE gender LIKE '$gender' AND age>='$agemin' AND age<='$agemax'"),0); // Figure out the total number of pages. Always round up using ceil() $total_pages = ceil($total_results / $max_results); // Build Page Number Hyperlinks echo "<center>Select a Page<br />"; // Build Previous Link if($page > 1){ $prev = ($page - 1); echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$prev\">Previous</a> "; } for($i = 1; $i <= $total_pages; $i++){ if(($page) == $i){ echo "$i "; } else { echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$i\">$i</a> "; } } // Build Next Link if($page < $total_pages){ $next = ($page + 1); echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$next\">Next</a>"; } echo "</center>"; ?> Quote Link to comment Share on other sites More sharing options...
NSW42 Posted November 16, 2008 Author Share Posted November 16, 2008 ok ive sold the result issue, but now if you click next page, its shows no results and the seach form is on that page, hmm lol any ideas as to why this happens ? Thanks Quote Link to comment Share on other sites More sharing options...
bobbinsbro Posted November 16, 2008 Share Posted November 16, 2008 dude, use code tags... and could you post the newer version of the code (after you solved the first problem)? Quote Link to comment Share on other sites More sharing options...
BK87 Posted November 16, 2008 Share Posted November 16, 2008 I looked at your html heh... but anyway I don't have a result for your issue with paging, maybe next time I log on here, but I'd like to point out this little trick for "listing" for($i=18;$i<90;$i++){ echo "<option value='$i'>$i</option>"; } just quicker... Quote Link to comment Share on other sites More sharing options...
NSW42 Posted November 16, 2008 Author Share Posted November 16, 2008 thanks bk, as for the 1st issue, i just added in limit and max results in the 1st query, the pagination code works great with just members being called, but now I decided to use it with the search gender script i knocked up and thats the issue now, click 2nd page and no results and if u click back, just returns to the search form.. Quote Link to comment Share on other sites More sharing options...
BK87 Posted November 16, 2008 Share Posted November 16, 2008 $lim=$page*$max_results; $offset=$page*$max_results+$max_results; $sql = mysql_query("SELECT * FROM users WHERE gender = '$gender' AND age>='$agemin' AND age<='$agemax' limit $lim, $offset") or die(mysql_error()); try that Quote Link to comment Share on other sites More sharing options...
NSW42 Posted November 16, 2008 Author Share Posted November 16, 2008 links to next page dont show up when added in.. Quote Link to comment Share on other sites More sharing options...
NSW42 Posted November 16, 2008 Author Share Posted November 16, 2008 actually i screwed up and put it in the wrong place :-\ anyways in the right spot now and the result is that it screws up the search results.. Quote Link to comment Share on other sites More sharing options...
NSW42 Posted November 17, 2008 Author Share Posted November 17, 2008 just one bump to see if it can be solved, if not im going to scrap it as im at a loss. Thanks Quote Link to comment Share on other sites More sharing options...
NSW42 Posted November 17, 2008 Author Share Posted November 17, 2008 ive searched everywhere for a fix and seems like im not alone out there with this issue, surely someone knows that can help ??? Quote Link to comment Share on other sites More sharing options...
NSW42 Posted November 18, 2008 Author Share Posted November 18, 2008 scrapped it, to many headaches and no pills to fix it Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.