|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2004-07-15 11:03 UTC] tila at home dot nl
Description:
------------
The client crash on the following code when offset > 0;
I don't get an error message.
Reproduce code:
---------------
$result = $db->query($QUERY);
$total = $result->numRows();
$back = max (0, $offset - $perpage);
$forward = min (($offset + $perpage), max (0, (($perpage * ceil ($total / $perpage)) - $perpage)));
$end = max (0, (($perpage * ceil ($total / $perpage)) - $perpage));
$overviewtemplate->setVariable("back", $back);
$overviewtemplate->setVariable("forward", $forward);
$overviewtemplate->setVariable("end", $end);
for ($i = $offset; (($i < $total) && ($i < ($offset + $perpage))); $i++) {
$row = $result->fetchRow(DB_FETCHMODE_ASSOC, $i);
while (list($key, $value) = each($row)) {
$row[$key] = stripslashes(trim($row[$key]));
}
}
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 05:00:01 2025 UTC |
new code, I am sorry. I cannot provide a link to the server. open it with ?id=5 as parameter. <?php require_once ('DB.php'); $dsn = "pgsql://apache:apache@localhost/groupware"; $db = DB::connect($dsn, true); $QUERY = "SELECT o.* FROM personoverview o"; $result = $db->query($QUERY); $total = $result->numRows(); $offset = $_GET['id']?$_GET['id']:0; $perpage = 10; for ($i = $offset; (($i < $total) && ($i < ($offset + $perpage))); $i++) { $row = $result->fetchRow(DB_FETCHMODE_ASSOC, $i); } echo $offset; ?>No, When I remove the PEAR::DB class and the code that's using it, it will display '5' just as expected. When I use pg_exec and pg_fetch_row etc.. the result displays '42' ???? <?php $db = pg_connect("host=localhost user=apache password=apache dbname=groupware");$QUERY = "SELECT o.* FROM personoverview o"; $result = pg_exec($QUERY); $total = pg_numrows($result); $offset = $_GET['id']?$_GET['id']:0; $perpage = 10; for ($i = $offset; (($i < $total) && ($i < ($offset + $perpage))); $i++) { $row = pg_fetch_row($result, $i); } echo $offset; ?>When I add a line in the script so that it reads: <?php $db = pg_connect("host=localhost user=apache password=apache dbname=groupware");$QUERY = "SELECT o.* FROM personoverview o"; $result = pg_exec($QUERY); $total = pg_numrows($result); $offset = $_GET['id']?$_GET['id']:0; $temp_offset = $offset $perpage = 10; for ($i = $offset; (($i < $total) && ($i < ($offset + $perpage))); $i++) { $row = pg_fetch_row($result, $i); } echo $offset; ?> The result will display 5. Strange