PDA

View Full Version : paging


edbr
08-16-2007, 07:37 AM
I have been trying to add paging to returned database records. I am trying to adapt existing code. I am selecting records from a link . this shows the total of found records but clicking for the next set returns none found.
It looks to me that I am not carrying over the $var ($_GET['recordID'])
but I haven't managed to do it.


// Get the search variable from URL

$var = $_GET['recordID'] ;
$trimmed = trim($var); //trim whitespace from the stored variable
$s = @$_GET['s'];
// rows to return
$limit=10;

// check for a search parameter
if (!isset($var))
{
echo "<p>We dont seem to have a search parameter!</p>";
exit;
}



// Build SQL Query
$query = "select id,city, created,title,company from jos_jl_jobposting where field1 like '%$trimmed%' order by created DESC";

$numresults=mysql_query($query);
$numrows=mysql_num_rows($numresults);



if ($numrows == 0)
{
echo "<h4>Results</h4>";
echo "<p>Sorry, your search returned zero results</p>";


}

// next determine if s has been passed to script, if not use 0
if (empty($s)) {
$s=0;
}

// get results
$query .= " limit $s,$limit";
$result = mysql_query($query) or die("Couldn't execute query");


// begin to show results set
print "<div class= \"header\">";

print "<div class= \"cellh\">";
echo "Date<br />";
print "</div>";

print "<div class= \"cellhtitle\">";
echo "</b>Title</b>";
print "</div>";

print "<div class= \"cellh\">";
echo "Location<br />";
print "</div>";



print "</div>";


$count = 1 + $s ;

// now you can display the results returned
while ($row= mysql_fetch_array($result)) {
$title = $row["created"] ;
$title = date("d/m/y");

print "<div class= \"job\">";
print "<div class= \"cell\">";

echo "&nbsp;$title ";

print "</div>";
print "<div class= \"celltitle\">";
echo $row["company"] ;
print "</div>";
print "<div class= \"cell\">";
echo $row["city"];
print "</div>";

print "</div>";



print "</div>";


$count++ ;
}

$currPage = (($s/$limit) + 1);

//break before paging
echo "<br />";

// next we need to do the links to other results
if ($s>=1) { // bypass PREV link if s is 0
$prevs=($s-$limit);


//Edited by Weztec



echo "&nbsp;<a href=" . '"' . $_SERVER["PHP_SELF"] . "?s=$prevs&q=$var" . '"' . ">&lt;&lt; Prev</a>&nbsp&nbsp;";
// print "&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\">&lt;&lt;Prev</a>&nbsp&nbsp;";
}

// 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++;
}

// check to see if last page
if (!((($s+$limit)/$limit)==$pages) && $pages!=1) {

// not last page so give NEXT link
$news=$s+$limit;

echo "&nbsp;<a href=" . '"' . $_SERVER["PHP_SELF"] . "?s=$news&q=$var" . '"' . ">Next &gt;&gt;</a>";
//echo "&nbsp;<a href=\"$PHP_SELF?s=$news&q=$var\">Next &gt;&gt;</a>";
}

$a = $s + ($limit) ;
if ($a > $numrows) { $a = $numrows ; }
$b = $s + 1 ;
echo "<p>Showing results $b to $a of $numrows</p>";

?>
I am getting the warning from this part
if (!isset($var))
{
echo "<p>We dont seem to have a search parameter!</p>";
exit;
}

davidj
08-16-2007, 09:38 AM
did you try my CLASS ?

edbr
08-16-2007, 09:54 AM
yes i tried first but clearly not correctly. Actually it was what sent me down this road! I got the same problem when initially selecting with a url variable. I will try again though i m getting crossed eyed trying to get to grips with this.
I want to return the data like below
// begin to show results set
print "<div class= \"header\">";

print "<div class= \"cellh\">";
echo "Date<br />";
print "</div>";

print "<div class= \"cellhtitle\">";
echo "</b>Title</b>";
print "</div>";

print "<div class= \"cellh\">";
echo "Location<br />";
print "</div>";
print "</div>";how can I apply your class to this.Sorry I can feeel my IQ slipping into the low single figures here!!

davidj
08-16-2007, 09:57 AM
oh right

in my class you have to name the db fields as you want your headers to appear. You can and should use underscores in the db as my class sorts that out.

in the class there is a section which draws the <tr><td> etc. It would be easy to change that into <div>

edbr
08-16-2007, 10:05 AM
ok thanks. Its a holiday here tomorrow so i can annoy the wife by screaming at the laptop all day