Re: Re: Re: Re: Re: Re: Re: sort in Liz V2 irgendwie vorbelegt - Darstellungsfeh - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Donnerstag, 28.Februar.2008, 10:12.
    Re: Re: Re: Re: Re: Re: Re: sort in Liz V2 irgendwie vorbelegt - Darstellungsfeh

      achso, jepp, mit der Hand vorn Kopp knall...
      Jatzt seh ich klar, du meinst, dass man die Filterbedingungen gleich mit nem "&" (und) verknüpft und ggf. auch, wenn notwendig per "|" (oder) arbeiten kann.

      Danke, das ist ein guter Tipp, manchmal hat man echt n Brett vorm Kopp...


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 27.Februar.2008, 09:53.
    sort in Liz V2 irgendwie vorbelegt?

      Hallo, bitte mal um die Hilfe der Cracks...

      Hab folgenden Code:
      ---schnipp
      Parameter kommen per URL richtig in folgender Form rein:
      http://www.domain.de/baseportal/baseportal.pl?htx=/dokumentb&seite=102&listdb=/module/datenbankname&fname=feldname&fwert=1&fsort=sorfeldname
      ...
      Subaufruf:
      $htm_dbwork .= &i_get_showlist(listdb => $listdb, fname => $fname, fwert => 
      
      ...
      sub i_get_showlist {
      $fwert, fsort => $fsort, limit => "0,50");
      

      ....
        %iparas = @_;
        if ( defined $iparas{'listdb'} ){ # wenn Datenbankname vorh.
        # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #
           if ( defined $iparas{'fname'} && defined $iparas{'fwert'} ) { # wenn Feldname(n) und Feldwert(e)
            @l_fnames = split /,/, $iparas{'fname'}; # Feldnamen in Liste (mit Komma getrennt übergeben!)
            @l_fwerte = split /,/, $iparas{'fwert'}; # Feldwerte in Liste (dito.)
       if ($#l_fnames >=0){ # nur wenn tats. Feldnamen da
         for (0.. $#l_fnames){
           if ($l_fwerte[$_] eq "-"){ #wenn "-" für "kein Inhalt"
         $get_filter .= "$l_fnames[$_]<) ";
                  } elsif ($l_fwerte[$_] ne "-"){ # Feldnamen-Wert-Paar als Filter
        $get_filter .= "$l_fnames[$_]==$l_fwerte[$_] ";
                  } # e if/elsif
         } # e for
            } #e if l_fnames
            #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
            if (defined $iparas{'fsort'}) { #wenn Sortier-Para vorh.
             $get_sort = "sort=$fsort";
            }
            #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
            if (defined $iparas{'limit'}) {
             $get_range = "range=$iparas{'limit'}";
            } else {
       $get_range = "range=$ra,$ra_l";
            }
            $a_debug.= "\$get_filter($get_filter)<br>
            $get_sort($get_sort)<br>
            \$get_range($get_range)<br>";
            get "$get_filter $get_sort $get_range", $iparas{'listdb'}, "list_db";
           # + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  #
        } else {
          # + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  #
        $a_debug.= "Alle Id's \$sort($sort)<br>\$limit($limit)<br>";
        get "Id=* $sort $limit", $iparas{'listdb'}, "list_db";
        }
      

      Die Ausgabe wird richtig gefiltert (nach Wert(en) ind $get_filter, es wird der richtige Datensatzbereich $get_range ausgegeben, nur ssortiert wird ums verrecken nicht...
      Wenn das Statement sort=sortfeldnam hart (also nicht als Variable) im get eingegeben wird, dann wird auch sortiert...
      Wo liegt hier der Hase im Pfeffer?
      Danke für Tipps...
      Ruben

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 27.Februar.2008, 09:57.
    Re: sort in Liz V2 irgendwie vorbelegt - Darstellungsfehler...

      Die Zeile zum Subaufruf sollte richtig heissen:
      Subaufruf:

      $htm_dbwork .= &i_get_showlist(listdb => $listdb, fname => $fname, fwert => $fwert, fsort => $fsort, limit => "0,50");
      

      da war was verrutscht, die erste Zeile unter der Sub-Deklaration logischerweise auch wech, die gehörte zur Aufrufzeile...
      Danke.

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Mittwoch, 27.Februar.2008, 11:13.
    Re: Re: sort in Liz V2 irgendwie vorbelegt - Darstellungsfehler...

           if (defined $iparas{'fsort'}) { #wenn Sortier-Para vorh.
             $get_sort = "sort=$fsort";
            }
      

      Du benutzt hier $fsort, was wenn dort überhaupt definiert, eine globale Variable ist.

      Vermutlich wolltest du es so:
           if (defined $iparas{'fsort'}) { #wenn Sortier-Para vorh.
             $get_sort = "sort=$iparas{'fsort'}";
            }
      

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 27.Februar.2008, 12:25.
    Re: Re: Re: sort in Liz V2 irgendwie vorbelegt - Darstellungsfehler...

      Danke erst mal Pouraga,
      ja, das war der eine Fehler, den hatte ich unterdessen schon gefunden, und der andere war, dass ich in der for-Schleife die Filterparameter in $get_filter fürs Datensatzholen jedes einzeln mit nem space abgeschlossen habe (weil ja, wenn mehrere Filter-Feldnamen/Feldwerte-Paare entstehen die Syntax so ist, dass das space eine "und"-Verknüpfung im get ergibt, aber wenn zwei Space aufeinander folgen, das das get mächtig übelnimmt...)
      Eine einfache Regex vor dem Einsetzen des $get_filter, die alle nachlaufenden spaces entfernt hat die Sache gerade jetzt geklärt.
      Danke - manchmal steht man echt wie der letzte Ochs da und sieht den Wald vor lauter Bäumen nicht....

      Also, Zusammenfassung:
      alles o.k. in Liz V2 mit sort, unbedingt immer beachten keine zwei aufeinanderfolgende spaces (Leerzeichen) im get vor weiteren Parametern

      Viele Grüße aus dem Erzgebirge an alle bp-ler

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 27.Februar.2008, 15:01.
    Re: Re: Re: Re: sort in Liz V2 irgendwie vorbelegt - Darstellungsfehler...

      ich bau mir bei sowas immer eine liste auf und joine die dann mit "&"
      vielleicht eine schönere Variante, vorallem wenn mal ein | dazu kommen sollte ;)

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 27.Februar.2008, 19:42.
    Re: Re: Re: Re: Re: sort in Liz V2 irgendwie vorbelegt - Darstellungsfehler...

      jo, das ist schon ne Möglichkeit, aber die Parameter stehen in nem Datenbankfeld und werden in nen Link bei der Ausgabe von Daten ner anderen DB mit eingebaut (also quasi ne Relation), sie kommen also per HTTP-GET rein und sind dem Script zur Laufzeit nicht bekannt, weder als Parameternamen noch als Parameterwert, die Anzahl der Parameter/Parameterwerte ist auch variable, deshalb der Zusammenbau in der Sub, ausserdem bin ich im Moment auf der "Welle der benannten Parameter bei Subaufrufen" (Perl-Kochbuch S.362ff) und da passt das gut zu...
      Das Stück Code lässt ja fast jede beliebige Datenbank mit beliebigen Filter-, Sortier- und Range-Parametern ausgeben, im Zusammenspiel mit ner Templateteile-DB, die als Feldwert für das "Relationsfeld" den gleichen Namen wie der Parameter hier listdb besitzt, wird eine Ausgabezeile bzw. der Ausgabeumfang für einen Datensatz, wenn dann per eval sogar als beliebiger Perl-Code möglich, hinterlegt, und voila hat man ein vollkommen flexibles und auch von nicht-Baseportal bzw. nicht-Perl Leuten managebares DB-Listausgabesystem, mit nem Editor wird das dann sogar klickimässig (das läuft aber leider noch nicht, bin noch auf der Suche nach dem richtigen Editor, entweder sindse alle riesengross und mächtig oder aber zu mickrig oder aber machen Probleme mit der BasePortal-Feldnamensyntax..)
      Na dann - man sieht sich vielleicht wieder mal
      Grüße aus dem Erzgebirge

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 27.Februar.2008, 21:49.
    Re: Re: Re: Re: Re: Re: sort in Liz V2 irgendwie vorbelegt - Darstellungsfehler...

      ich glaub so kompliziert mein ich das nicht, sondern einfach
      statt

      for (0.. $#l_fnames){
           if ($l_fwerte[$_] eq "-"){ #wenn "-" für "kein Inhalt"   
                $get_filter .= "$l_fnames[$_]<) ";
           } elsif ($l_fwerte[$_] ne "-"){ # Feldnamen-Wert-Paar als Filter  
                $get_filter .= "$l_fnames[$_]==$l_fwerte[$_] ";
           } # e if/elsif
      } # e for
      

      das:

      for (0.. $#l_fnames){
           if ($l_fwerte[$_] eq "-"){ #wenn "-" für "kein Inhalt"   
                push @get_filter_arr,"$l_fnames[$_]<)";
           } elsif ($l_fwerte[$_] ne "-"){ # Feldnamen-Wert-Paar als Filter  
                push @get_filter_arr,"$l_fnames[$_]==$l_fwerte[$_]";
           } # e if/elsif
      } # e for
      $get_filter=join "&",@get_filter_arr;
      

      kein leerzeichenproblem mehr und | kann man auch verwenden - geht bei leerzeichen glaub ich nicht.

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Donnerstag, 28.Februar.2008, 10:12.
    Re: Re: Re: Re: Re: Re: Re: sort in Liz V2 irgendwie vorbelegt - Darstellungsfeh

      achso, jepp, mit der Hand vorn Kopp knall...
      Jatzt seh ich klar, du meinst, dass man die Filterbedingungen gleich mit nem "&" (und) verknüpft und ggf. auch, wenn notwendig per "|" (oder) arbeiten kann.

      Danke, das ist ein guter Tipp, manchmal hat man echt n Brett vorm Kopp...

     Antworten


     
 Liste der Einträge von 11250 bis 11400:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.09s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!