Jump to content

[SOLVED] search pagination result


NSW42

Recommended Posts

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>";

?>

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

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..

Link to comment
Share on other sites

$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

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.