Blätterfunktionsklasse von Wurzel

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Es klappt nun mit folgender Funktion:

    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_result0"num");  
            return 
    $xx;  
        } 
    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.
    Zuletzt geändert von compuboy1010; 01.04.2004, 11:55.

    Kommentar


    • #17
      PHP-Code:
      $this->db_result mysql_query("select count(*) as num from ".$table.(($filter!="") ? " where ".$filter "")." "); 
      so sollte es (besser) laufen.
      Kissolino.com

      Kommentar


      • #18
        Leider hat das auch nicht geklappt.

        Immer noch kommt die Fehlermeldung:

        Warning: mysql_result(): supplied argument is not a valid MySQL result resource in ...

        Kommentar


        • #19
          lass dir die zusammengesetzte query mal mit echo ausgeben und setz die dann mal im phpmyadmin ab ...
          Kissolino.com

          Kommentar


          • #20
            ich sehe immer noch das Problem hierin:
            PHP-Code:
            if ((isset($_REQUEST['pc_min'])) || (isset($_REQUEST['pc_max']))) 

            // und auch entsprechen bei $_SESSION ... 
            du hast OR mit || ersetzt, das ist doch das Gleiche in grün . OK, im Klartext:
            Du brauchst beide Angabe, also prüfe bitte mit AND oder &&. Ich vermute
            dass deiner Whereklausel was fehlt und zwar:

            entweder: where postal_code> and postal_code<irgendeineZahl
            oder: where postal_code>irgendeineZahl and postal_code<

            Kommentar

            Lädt...
            X