Es klappt nun mit folgender Funktion:
Allerdings gibt es nun folgendes Problem:
Wenn der Postleitzahlenbereich eingegrenzt wird werden zuviele Seitenlinks angezeigt.
Angenommen ich grenze ihn auf 20000 bin 30000 ein, dann werden trotzdem der gesamte (count/links pro Seite) angezeigt. Allso viel zu viele Seiten.
Nun habe ich herausgefunden dass es an der Zeile liegt in der $anz berechnet wird.
Deswegen habe ich die wie folgt abgewandelt:
In meiner DB Klasse gibt es die count_records Funktion bei der man ein Filter setzen kann. So wie ich es gemacht habe. Diese Klasse ist aber ursprünglich nicht von mir und deswegen verstehe ich nicht warum immer die Fehlermeldung kommt:
mysql_result(): supplied argument is not a valid MySQL result resource in
Was ist nur los ?
PS: Ja ich hätte "POST" nehmen können aber habe ich durch "REQUEST" einen Nachteil ? "GET" geht nicht, da die Daten aus einer "FORM" kommen.
PHP Code:
function returnLinks($actPage, $showPerPage)
{
## user entered a minimum and maximum postal code ##
if ((isset($_REQUEST['pc_min'])) || (isset($_REQUEST['pc_max']))) {
$_SESSION['pc_min'] = strip_tags($_REQUEST['pc_min']);
$_SESSION['pc_max'] = strip_tags($_REQUEST['pc_max']);
}
if ((isset($_SESSION['pc_min'])) || (isset($_SESSION['pc_max']))) {
$this->db->raw_query("SELECT *
FROM ".$this->table."
WHERE (postal_code > ".$_SESSION['pc_min'].")
AND (postal_code < ".$_SESSION['pc_max'].")
ORDER BY postal_code ASC
LIMIT ".($actPage-1) * $showPerPage.', '.$showPerPage."
");
} else {
$this->db->raw_query("SELECT *
FROM ".$this->table."
ORDER BY name ASC
LIMIT ".(($actPage-1) * $showPerPage).', '.$showPerPage);
}
$links = array();
while ($row = $this->db->fetch_array()) {
$row = $this->returnHTMLCompatible($row);
$links[] = $row;
}
return $links;
$this->numResults = $this->returnNumResultes();
}
Allerdings gibt es nun folgendes Problem:
Wenn der Postleitzahlenbereich eingegrenzt wird werden zuviele Seitenlinks angezeigt.
Angenommen ich grenze ihn auf 20000 bin 30000 ein, dann werden trotzdem der gesamte (count/links pro Seite) angezeigt. Allso viel zu viele Seiten.
Nun habe ich herausgefunden dass es an der Zeile liegt in der $anz berechnet wird.
Deswegen habe ich die wie folgt abgewandelt:
PHP Code:
// 1. query für die anzahl
if ($_REQUEST['pc_min'] || $_SESSION['pc_max']) {
$anz = $db->count_records($page->returnTablename(),
"(postal_code > ".$_REQUEST['pc_min'].") AND (postal_code < ".$_REQUEST['pc_max'].")");
} else {
$anz = $db->count_records($page->returnTablename(), "");
}
In meiner DB Klasse gibt es die count_records Funktion bei der man ein Filter setzen kann. So wie ich es gemacht habe. Diese Klasse ist aber ursprünglich nicht von mir und deswegen verstehe ich nicht warum immer die Fehlermeldung kommt:
mysql_result(): supplied argument is not a valid MySQL result resource in
PHP Code:
function count_records($table, $filter = "")
{
$this->db_result = mysql_query("select count(*) as num from $table".(($filter!="")?" where $filter" : ""));
$xx = mysql_result($this->db_result, 0, "num");
return $xx;
}
PS: Ja ich hätte "POST" nehmen können aber habe ich durch "REQUEST" einen Nachteil ? "GET" geht nicht, da die Daten aus einer "FORM" kommen.
Comment