Re: Page Numbering Query - page one ok, page 2,3..not ok.
Posted: Mon Aug 24, 2009 8:17 am
that is the query getting executed on first page.. Try to go to another page number[2 or 3] and see what the query shows.
A community of PHP developers offering assistance, advice, discussion, and friendship.
http://forums.devnetwork.net/
SELECT * FROM products WHERE title LIKE '%%' AND category = '' LIMIT 6, 6
Code: Select all
<?php
$search = $_POST['search'];
include "dbconn.php";
echo "<div class='head'>Search for $search</div>";
$rowsPerPage = 20;
// by default we show first page
$pageNum = 1;
// if $_GET['pagenum'] defined, use it as page number
if(isset($_GET['pagenum']))
{
$pageNum = $_GET['pagenum'];
}
// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;
echo "<table width='100%' cellpadding='0' cellspacing='0' class='table'>";
$result = mysql_query ("SELECT * FROM products WHERE title LIKE '%$search%' OR description LIKE '%$search%' OR id = '$search' LIMIT $offset, $rowsPerPage") or die (mysql_error());
if (mysql_num_rows($result)==0) { echo "<tr><td><div class='sectionhead'>Sorry, there are no results for $search.</div></td></tr>"; }
else {
while ($row = mysql_fetch_object($result))
while ($row = mysql_fetch_object($result)) {
echo "
<div class='cat_prodlistbox'>
<div class='cat_producttitle'>";
$position=43; //Defines how many characters will be displayed from content field.
$postcontent = substr($row->title,0,$position);
echo "$postcontent ...</div>£$row->price<br/>";
if ($row->photoprimary == NULL) { echo "<a href='index.php?page=product&menu=categ&category=$row->category&product=$row->id&head=$row->title' title='Look at the $row->title'><img src='images/blank.gif' border='0' /></a>";}
elseif ($row->photoprimary != NULL) { echo"
<a href='index.php?page=product&menu=categ&category=$row->category&product=$row->id&head=$row->title' title='Look at the $row->title'><img src='images/productphotos/$row->photoprimary' border='0' /></a>";}
echo "</div>
";
}}
mysql_free_result($result);
echo "</table>";
echo "<div style='clear:both' /><hr noshade size='1' color='#cccccc' />";
$query = "SELECT COUNT(id) AS numrows FROM products WHERE title LIKE '%$search%' OR description LIKE '%$search%' OR id = '$search'";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);
// print the link to access each page
$self = $_SERVER['PHP_SELF'];
$nav = '';
for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nav .= " $page "; // no need to create a link to current page
}
else
{
$nav .= " <a href=\"index.php?page=search&menu=search&pagenum=$page\" class='bodylink'>$page</a>";
}
}
// creating previous and next link
// plus the link to go straight to
// the first and last page
if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"index.php?page=search&menu=search&pagenum=$page\" class='bodylink'>[Prev]</a> ";
$first = " <a href=\"index.php?page=search&menu=search&pagenum=1\" class='bodylink'>[First Page]</a>";
}
else
{
$prev = ' '; // we're on page one, don't print previous link
$first = ' '; // nor the first page link
}
if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$next = " <a href=\"index.php?page=search&menu=search&pagenum=$page\" class='bodylink'>[Next]</a>";
$last = " <a href=\"index.php?page=search&menu=search&pagenum=$maxPage\" class='bodylink'>[Last Page]</a>";
}
else
{
$next = ' '; // we're on the last page, don't print next link
$last = ' '; // nor the last page link
}
// print the navigation link
echo "<div class='navpages'>" . $first . $prev . $nav . $next . $last . "</div>";
mysql_close($sqlconn);
?>Code: Select all
<?php
session_start();
if(isset($_POST['searchadv']))
{
$searchadv = $_POST['searchadv'];
$_SESSION['searchadv']=$searchadv;
}
else
{
$searchadv = $_SESSION['searchadv'];
}
if(isset($_POST['category']))
{
$category = $_POST['category'];
$_SESSION['category']=$category;
}
else
{
$category = $_SESSION['category'];
}
if(isset($_POST['pricemin']))
{
$pricemin = $_POST['pricemin'];
$_SESSION['pricemin']=$pricemin;
}
else
{
$pricemin = $_SESSION['pricemin'];
}
if(isset($_POST['pricemax']))
{
$pricemax = $_POST['pricemax'];
$_SESSION['pricemax']=$pricemax;
}
else
{
$pricemax = $_SESSION['pricemax'];
}
include "dbconn.php";
echo "<div class='head'>Advanced Searching</div>";
$rowsPerPage = 5;
// by default we show first page
$pageNum = 1;
// if $_GET['pagenum'] defined, use it as page number
if(isset($_GET['pagenum']))
{
$pageNum = $_GET['pagenum'];
}
// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;
echo "<table width='100%' cellpadding='0' cellspacing='0' class='table'>";
$query="SELECT * FROM products WHERE title LIKE '%$searchadv%' AND category = '$category' LIMIT $offset, $rowsPerPage";
$result = mysql_query ("SELECT * FROM products WHERE title LIKE '%$searchadv%' AND category = '$category' LIMIT $offset, $rowsPerPage") or die (mysql_error());
echo $query;
if (mysql_num_rows($result)==0) { echo "<div class='sectionhead'>Sorry, there are no results for $search.</div>"; }
else {
while ($row = mysql_fetch_object($result))
while ($row = mysql_fetch_object($result)) {
echo "
<div class='cat_prodlistbox'>
<div class='cat_producttitle'>";
$position=43; //Defines how many characters will be displayed from content field.
$postcontent = substr($row->title,0,$position);
echo "$postcontent ...</div>
<a href='index.php?page=product&menu=categ&category=$row->category&product=$row->id' title='Look at the $row->title'><img src='images/productphotos/$row->photoprimary' border='0' /></a></div
</div>
";
}}
mysql_free_result($result);
echo "</table>";
echo "<div style='clear:both' /><hr noshade size='1' color='#cccccc' />";
$query = "SELECT COUNT(id) AS numrows FROM products WHERE title LIKE '%$searchadv%' AND category = '$category'";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);
// print the link to access each page
$self = $_SERVER['PHP_SELF'];
$nav = '';
for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nav .= " $page "; // no need to create a link to current page
}
else
{
$nav .= " <a href=\"index.php?page=searchadvresults&menu=home&pagenum=$page\" class='bodylink'>$page</a>";
}
}
// creating previous and next link
// plus the link to go straight to
// the first and last page
if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"index.php?page=searchadvresults&menu=home&pagenum=$page\" class='bodylink'>[Prev]</a> ";
$first = " <a href=\"index.php?page=searchadvresults&menu=home&pagenum=1\" class='bodylink'>[First Page]</a>";
}
else
{
$prev = ' '; // we're on page one, don't print previous link
$first = ' '; // nor the first page link
}
if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$next = " <a href=\"index.php?page=searchadvresults&menu=home&pagenum=$page\" class='bodylink'>[Next]</a>";
$last = " <a href=\"index.php?page=searchadvresults&menu=home&pagenum=$maxPage\" class='bodylink'>[Last Page]</a>";
}
else
{
$next = ' '; // we're on the last page, don't print next link
$last = ' '; // nor the last page link
}
// print the navigation link
echo "<div class='navpages'>" . $first . $prev . $nav . $next . $last . "</div>";
mysql_close($sqlconn);
?>
I get these errors. And I don't have a clue what they mean as I have never used sessions before.Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\phpmyadmin\test\index.php:1) in C:\xampp\phpmyadmin\test\includes\searchadvresults.inc on line 2
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\phpmyadmin\test\index.php:1) in C:\xampp\phpmyadmin\test\includes\searchadvresults.inc on line 2
Code: Select all
if(!isset($_SESSION))
{
session_start();
}
Code: Select all
session_start();
Code: Select all
<?php
if(!isset($_SESSION))
{
session_start();
}
if(isset($_POST['searchadv']))
{
$searchadv = $_POST['searchadv'];
$_SESSION['searchadv']=$searchadv;
}
else
{
$searchadv = $_SESSION['searchadv'];
}............is there any html code before that??simonmlewis wrote: I used that code right at the top of the <?php section of the page.
Code: Select all
//start of index.php
<?php session_start(); ?>
... //rest of the code of index.php