944,043 Members | Top Members by Rank

Ad:
  • PHP Discussion Thread
  • Unsolved
  • Views: 6521
  • PHP RSS
Jul 31st, 2005
0

paging & _POST variables

Expand Post »
Hi there!
I finally managed to do paging BUT it works only when i manually give 'category' a value.
If i use $_POST[category] a warning occurs and no result is posted:
Warning: Invalid argument supplied for foreach() in
C:...\a.php on line 71

Here is my code in the a.php file:
<?php include("header.php"); php?>

<?php
require_once 'Pager.php';
$db = DB::connect('mysql://rootlocalhost/db');

$sql = "SELECT title,year
FROM document AS doc
WHERE year between 1995 and 2005
AND category='$_POST[category]'";
// Find our starting Row
$from = $_GET['from'];
if (!is_numeric($from)){
$from = 0; }
// We'll limit the rows to 10 per page
$limit = 2;

// Get the total number of rows and build our pager
$nrows =& $db->getRow('SELECT count(*)
FROM document AS doc
WHERE year between 1995 AND 2005
AND category='$_POST['category']');
$data = DB_Pager::getData($from, $limit, $nrows[0]);

// Grab 2 rows using PEAR:B limitQuery function
$res = $db->limitQuery($sql, $from, $limit);
// Display the rows
print("<p><HR width=100% size=4 noshade><p>");

// Build our pager
echo $data['numrows'] . ' Results found -- ';
echo 'displaying '. $data['limit'] . ' results per page<br><br>';

// Create a header showing which page we're on
echo '<h4> Page '. $data['current'] . ' of ' . $data['numpages'] . '</h4>';

print("<p><TABLE border=1>\n");
print("<TR><TD><center><b>year</b></center></TD>
<TD><b><center>title</center></b>
</TR>");
while ($row = $res->fetchRow()) {
print("<TR ALIGN=LEFT VALIGN=TOP>");
print("<TD>$row[2]</TD>");
print("<TD>$row[1]</TD>");
}
print("</TR></TABLE><p>");

//echo "Jump to page: ";
// Unless we're on the first page, show a link to the previous page
if ($data['current'] != $data['firstpage']){
echo '<a href="'. "$PHP_SELF?from=" . $data['prev'] .'">&lt;&lt; Prev </a>';
}
// Direct link to pages
foreach ($data['pages'] as $page => $start_row) {
echo "[ <a href='$PHP_SELF?from=$start_row'>$page</a> ] ";
}
// Unless we're on the last page, show a link to the next page
if ($data['current'] != $data['lastpage']){
echo '<a href="'. "$PHP_SELF?from=" . $data['next'] . '">Next>> </a>';
}
?>
<?php include("footer.php"); php?>
Thanks for your time.
Cali
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
cali is offline Offline
5 posts
since Jul 2005
Jul 31st, 2005
0

Re: paging & _POST variables

Right, in the first few lines, I have a few comments.

Firstly, you cannot do this:
PHP Syntax (Toggle Plain Text)
  1. <?php -CODE HERE- php?>
  2. // The above example is WRONG. You can do either of the following:
  3.  
  4. <?php -CODE HERE- ?>
  5. --or--
  6. <? -CODE HERE- ?>
  7. // for code snippets, or...
  8.  
  9. <?=$var ?>
  10. // to echo a variable.
Second, the reuire_once function was called incorrectly. Here's how to do it:[php]<?php
require_once('Pager.php');
// ^-----------^---Note the parenthesis. =)
?>[/php]
Lastly, your POST variable is called wrong. Try this: [php]$sql = "SELECT title,year
FROM document AS doc
WHERE year between 1995 and 2005
AND category='" . $_POST['category'] . "';";
[/php]Hope my tips helped you. =)
Reputation Points: 14
Solved Threads: 0
Light Poster
Sp!ke is offline Offline
45 posts
since Jul 2005
Aug 1st, 2005
0

Re: paging & _POST variables

Thank you for yuor time!
Well the parethensis is not obligatory, that works ok!
And the php?> also works fine. I'm also used to use ?> and not php?> in general.
Concerning the sql query,it is the first time I see using the ';'of the sql command in the query.That didn't cause any warning or problem. Queries can work without it as well. They do to me in other code. I have tried to write $_POST[] in different ways, none of them worked.
I can't understad if there is something else, and it's not the _POSt[] that I'm testing.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
cali is offline Offline
5 posts
since Jul 2005
Aug 2nd, 2005
0

Re: paging & _POST variables

Probably you use $_POST[category] in your first db query rather than $_POST['category'].

You may want to tidy up your code by listing all the variables before query to db and other actions. eg. $category = $_POST['category']; etc for each variable to be used in the script.
Reputation Points: 10
Solved Threads: 7
Posting Whiz in Training
zippee is offline Offline
294 posts
since Jan 2005
Aug 2nd, 2005
0

Re: paging & _POST variables

Yes you are right, the '' are missing there. It is correct in my code that I'm testing, the problem is with the foreach function as I already said. And I can't find any connection with it.Here is what it posts:
Warning: Invalid argument supplied for foreach() in C:\Program Files\Apache Group\Apache2\htdocs\.....php on line....
Reputation Points: 10
Solved Threads: 0
Newbie Poster
cali is offline Offline
5 posts
since Jul 2005
Aug 16th, 2005
0

Re: paging & _POST variables

[b][i][u][quote]
Reputation Points: 10
Solved Threads: 0
Newbie Poster
Dheeraj Kumar is offline Offline
6 posts
since Jul 2005

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in PHP Forum Timeline: errors in phpbb
Next Thread in PHP Forum Timeline: calling a SQL UDF?





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC