Re: Inkrement; einfacher Zähler - 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 Oliver ;-) (439 Beiträge) am Freitag, 1.Februar.2002, 12:13.
    Re: Inkrement; einfacher Zähler

      Hallo Phixxi,

      für b) brauchst du ein wenig perl:

      <perl>
      get "Feld1==$Feld1","deineDB"; ## entsprechender DB-Eintrag wird geholt
      $Feld2++; ## Die Zahl in Feld2 wird um eins erhöht
      mod "Feld1==$Feld1",["Feld2",$Feld2],"deineDB";  ## neue Zahl wird in die DB geschrieben
      </perl>
      

      Soweit klar?

      Oliver ;-)


    Ihre Antwort:

    Name: EMail: EMail bei Antwort? WWW:
    Titel:
    Text:

    Neuer Eintrag


 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Phixxi (280 Beiträge) am Freitag, 1.Februar.2002, 10:44.
    Inkrement; einfacher Zähler

      Guten Morgen alle zusammen!
      Kann mir jemand in einfachen Worten (oder besser gleich mit einem netten, kleinen Script) sagen, wie ich ein Feld zum Zähler mache?
      Soll heißen:
      a) ein Feld, welches sich bei NEUEINTRAG um eins hochzählt (sozusagen Gästebucheinträge mit eigener Nummer) und
      b) ein Feld, welches sich bei DATENABRUF um eins hochzählt (also ein Counter, der mir sagt wie oft dieser Datensatz -in der Detailansicht- aufgerufen wurde)
      Die Werte sollten in beiden Fällen in einem ganz normalen Feld für jederman lesbar sein, also nich irgendwie nur intern zu finden sein.
      Also Feld 1 z.B. "Eintrag-Nr" und Feld 2 z.B. "Gelesen" ...mal, oder so ähnlich.
      In etwa so, wie in der bp Linklist, unten auf der Startseite, wo jeder seine Seite eintragen kann. Da gibt's doch auch Hits und Stimmen, oder so.
      Viiiielen Dank!
      Phixxi
      P.S.
      Ach ja, wäre gut wenn man den Startwert gleich vorgeben könnte

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 1.Februar.2002, 12:01.
    Re: Inkrement; einfacher Zähler

      Für a) gibt es "Id", bzw. $_id...

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Freitag, 1.Februar.2002, 13:08.
    Re: Inkrement; einfacher Zähler

      Hmmm, die Antwort hatte ich schon erwartet...;-)
      Aber wie erscheint denn der Wert im ganz normalen Template? Die Id wird bei mir nie angezeigt...
      Und (wie) kann ich einen Startwert definieren?
      THX
      Phixxi

     Antworten

    Beitrag von rookie (3 Beiträge) am Montag, 4.Februar.2002, 17:10.
    Re: Inkrement; einfacher Zähler

      Hab das gerade gelesen...

      Wie würde das aussehen (code), wenn ich will, dass die Klicks auf den link z.B. www.test.de gezählt werden???


      gruß
      da rookie

     Antworten

    Beitrag von Oliver ;-) (439 Beiträge) am Freitag, 1.Februar.2002, 12:13.
    Re: Inkrement; einfacher Zähler

      Hallo Phixxi,

      für b) brauchst du ein wenig perl:

      <perl>
      get "Feld1==$Feld1","deineDB"; ## entsprechender DB-Eintrag wird geholt
      $Feld2++; ## Die Zahl in Feld2 wird um eins erhöht
      mod "Feld1==$Feld1",["Feld2",$Feld2],"deineDB";  ## neue Zahl wird in die DB geschrieben
      </perl>
      

      Soweit klar?

      Oliver ;-)

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Freitag, 1.Februar.2002, 13:06.
    Re: Inkrement; einfacher Zähler

      Aha... Sieht nicht so schwer aus.
      Werd ich mal testen!
      Vielen Dank ;-)
      Phixxi

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Freitag, 1.Februar.2002, 13:40.
    Re: Inkrement; einfacher Zähler

      Hmmm...klappt irgendwie nicht.
      Liegt's vielleicht an meinem do action= Tag? So schaut's aus:
      <html><head><title></title></head>
      <body bgcolor=ffffff>
      <font face=arial,helvetica>
      <font size=1></font>
      <h3></h3>
      

      <perl>
      unless ($Objekt-Nr=~ /^(\d{4,4})$/)
      { out "Bitte geben Sie die 4-stellige Objekt-Nr ein"; } 	
      </perl>
      

      <perl>
      get "Feld1==$Feld1","Objekte"; 
      $Feld2++; mod "Feld1==$Feld1",["Feld2",$Feld2],"Objekte";
      </perl>
      

      <center>
      <do action=list listtype=all db=Objekte listfields=-Id showamount=no selectbrowse=no Buttonbrowse=no databack=f0f0f0 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=2 gridcolor=b0b0b0 dataface=arial,helvetica >
      

      <p><font face=arial,helvetica size=2>
      <p><font size=1></font>
      

      </body></html>

      Habe testweise die Felder wirklich "Feld1" und "Feld2" genannt...
      Oder kommen sich die beiden Perlscripte in die Quere?
      Das erste funktioniert jetzt nämlich auch nicht mehr..:-(

      Gruß
      Phixxi

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 1.Februar.2002, 15:08.
    Re: Inkrement; einfacher Zähler

      hat das mit der objekt_nr je funktioniert? eigentlich dürfte es nicht hinhauen, weil du einen Bindestrich darin hast (Sonderzeichen)

      <perl>
       
      unless ($_sel{Objekt-Nr}=~ /^(\d{4,4})$/)
      { out "Bitte geben Sie die 4-stellige Objekt-Nr ein"; }else
      { 
      get "Objekt-Nr==$_sel{Objekt-Nr}","Objekte"; 
      $Feld2++; mod "Id==$_id",["Feld2",$Feld2],"Objekte";
      }
      </perl>
      <center>
      <do action=list listtype=all db=Objekte listfields=-Id showamount=no selectbrowse=no Buttonbrowse=no databack=f0f0f0 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=2 gridcolor=b0b0b0 dataface=arial,helvetica >
      

      So könnte es klappen. Ich weiß zwar nicht, wie dein Formular dazu aufgebaut ist, eventuell muß noch was geändert werden.

      Sander

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Samstag, 2.Februar.2002, 11:12.
    Re: Inkrement; einfacher Zähler

      Test ich!
      Das mit der Objekt-Nr hat bisher eigentlich schon hingehauen...
      Vielen Dank!
      Phixxi

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Samstag, 2.Februar.2002, 11:29.
    @Sander: Re: Inkrement; einfacher Zähler

      Hi Sander,
      so, folgendermaßen sieht's aus:
      Habe zunächst Dein Script so übernommen und getestet.
      Ergebnis: Klappte nicht. Meldung (Bitte geben Sie 4-stellige Nr ein) erschien IMMER, auch wenn man 4-stellige Nr eingab.
      Ausgabe der DB erfolgte auch immer (egal ob Eingabe oder nicht. Ausnahme: Bei Übergabe einer korrekten Nr erschien nur das betreffende Objekt -korrekt-, aber eben auch die Meldung.

      Dann habe ich mal die Feldbezeichnung Objekt-Nr in ObjektNr umbenannt, und siehe da:
      Bei Übergabe der Nr erschien nur das betreffende Objekt, ohne Fehlermeldung und das Hochzählen klappt auch *freu*.
      Allerdings wird immer noch der DB Inhalt ausgegeben, wenn man nichts oder nur eine Ziffer eingibt!
      Es erscheint zwar die Fehlermeldung, aber die Ausgabe kommt danach trotzdem...
      Zur Erinnerung noch mal das jetzige Template:
      <perl>
       
      

      unless ($_sel{ObjektNr}=~ /^(\d{4,4})$/)


      { out "Bitte geben Sie die 4-stellige ObjektNr ein"; }else
      { 
      get "ObjektNr==$_sel{ObjektNr}","Objekte"; 
      $Feld2++; mod "Id==$_id",["Feld2",$Feld2],"Objekte";
      }
      </perl>
      <center>
      <do action=list listtype=all db=Objekte listfields=-Id showamount=no selectbrowse=no Buttonbrowse=no databack=f0f0f0 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=2 gridcolor=b0b0b0 dataface=arial,helvetica >
      

      Also, damit klappt alles, außer der Sperrung der Ausgabe wenn keine oder nur teilweise Nummer eingegeben wird.
      Kannst Du mir da nochmal helfen?
      Wäre mir wirklich seeehr wichtig...!
      Vielen Dank,
      Phixxi

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Samstag, 2.Februar.2002, 11:55.
    Re: @Sander: Re: Inkrement; einfacher Zähler

      Nochmal ich:
      Shit, klappt doch nicht so mit dem Zähler.
      Am Anfang dachte ich, es zählt, aber da hat sich wohl doch ein Fehler eingeschlichen.
      Zur Erklärung: Ich habe 2 Templates auf derselben DB.
      Eines für die Detailausgabe und eins für die Listenausgabe. Grund dafür ist, daß es zum einen möglich sein soll ein bestimmtes Objekt direkt über seine ObjektNr aufzurufen >(Template Detail) oder über versch. Auswahlfelder (Region, Preis, etc.) > (Template Liste).
      Ich hab nun in beiden Templates das Zählscript eingesetzt, aber es scheint unabhängig voneinander zu zählen, also nicht die absolute Zahl der Abrufe wird angezeigt, sondern zum einen die Zahl der Abrufe im Detail Template und zum anderen die im List Template...
      Hinzukommt, daß die letzten Testabrufe gar nicht mehr zum Hochzählen führten (aber ich nehme an, das liegt daran, daß mein Browser die Seiten aus dem Cache liest und kein "echten" Abfragen macht).
      Korrektur, hab gerade nochmal getestet:
      Bei der Abfrage DIREKT über die ObjektNr wird hochgezählt. Bei Abruf des Listtemplates und klicken auf den Detaillink wird nicht hochgezählt...
      Liegt's am Browser?
      Wie sag ich dem Idioten denn, daß er's jedesmal neu laden soll?
      Klick + Strg klappt nicht...
      Oder liegt's doch am Script...?
      *stöhn*
      Help please!
      THX
      Phixxi

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 2.Februar.2002, 12:54.
    Re: @Sander: Re: Inkrement; einfacher Zähler

      Das Hochzählen ist nur darauf abgestimmt, das es passiert, wenn du eine Objektnummer übergibst. Beim Listentemplate übergibst du aber die Id des Datensatzes - also haut die Abfrage da nicht hin.
      Leg bitte mal einen Link zu deinem Form hier rein.

      Sander

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Samstag, 2.Februar.2002, 13:23.
    Re: @Sander: Re: Inkrement; einfacher Zähler

      Hi Sander,
      mein Form ist leider noch nicht online.
      Wird eh auf meinem Server liegen.
      Ich habe hier mal den kompletten Quellcode.
      Zunächst das List-Template:

      <html><head><title></title>
      </head>
      <center>
      <body bgcolor="#ffffff">
      

      <br><ul>
      <font face="arial,helvetica" size=2>
      <h2 align=middle></h2>
      <p></p></font>
      

      <perl>
      { 
      $Feld2++; mod "Id==$_id",["Feld2",$Feld2],"Objekte";
      }
      </perl>
       
      <do action=all selectbrowse=no range^=0,20 pagebrowse=no buttonbrowse=bottom listtype=list listfields=ObjektNr,Ort,Region,Land,Objektart,Objektkategorie,Jahresumsatz,Pacht,Kauf/Abloesesumme input=link>
      

      <p><font face="arial,helvetica" size=2><b></b>
      <p></font>
      </ul>
      

      </body></html>

      Nun das erste Formular (Abfrage nach Auswahlfelder):
       <FORM NAME="Tabelle4FORMULAR" ENCTYPE="multipart/form-data" ACTION="http://baseportal.de/cgi-bin/baseportal.pl?" TARGET=_self METHOD=Get>
              <INPUT TYPE=HIDDEN NAME="htx" VALUE="/gastro4sale/Objektdaten/Objekte">
      

      ##dann kommen die versch. Auswahlfelder...
       <SELECT ID="Auswahlfeld3" NAME="Region~">
                   <OPTION VALUE="*" SELECTED>Alle Regionen</OPTION>
                   <OPTION VALUE="Baden-Württemberg">Baden-Württemberg</OPTION>
                   <OPTION VALUE="Bayern">Bayern</OPTION>
                   <OPTION VALUE="Berlin">Berlin</OPTION>
                   <OPTION VALUE="Brandenburg">Brandenburg</OPTION>
                   <OPTION VALUE="Bremen">Bremen</OPTION>
                   <OPTION VALUE="Hamburg">Hamburg</OPTION>
      ##...usw.
      

      und die Abfrage per ObjektNr:
         <FORM NAME="Tabelle5FORMULAR" ENCTYPE="multipart/form-data" ACTION="http://baseportal.de/cgi-bin/baseportal.pl?" TARGET=_self METHOD=Get>
              <INPUT TYPE=HIDDEN NAME="htx" VALUE="/gastro4sale/Objektdaten/Expose">
      

      ## Parameterübergabe per ObjektNr-Feld:
      <INPUT ID="Eingabefeld3" TYPE=TEXT NAME="ObjektNr~" VALUE="" SIZE=5 MAXLENGTH=4></TD>
      


      Ich hoffe Du kannst damit was anfangen...
      THX
      Phixxi

     Antworten

    Beitrag von Sander (8133 Beiträge) am Sonntag, 3.Februar.2002, 22:32.
    Re: @Sander: Re: Inkrement; einfacher Zähler

      mach alles in Perl beim Detailtemplate:

      <perl>
       
      unless ($_sel{Objekt-Nr}=~ /^(\d{4,4})$/)
      { 
      out "Bitte geben Sie die 4-stellige Objekt-Nr ein"; 
      }else
      {
      do_list "Objekt_Nr==$_sel{Objekt_Nr} listtype=all db=Objekte listfields=-Id showamount=no selectbrowse=no Buttonbrowse=no databack=f0f0f0 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=2 gridcolor=b0b0b0 dataface=arial,helvetica";
      $Feld2++; 
      mod "Id==$_id",["Feld2",$Feld2],"Objekte";
      }
      </perl>
      

      und im Listentemplate:

      <do action=all selectbrowse=no range^=0,20 pagebrowse=no buttonbrowse=bottom listtype=list listfields=ObjektNr,Ort,Region,Land,Objektart,Objektkategorie,Jahresumsatz,Pacht,Kauf/Abloesesumme input=link>
       
      <perl>
      

      if ($cmd eq "all")
      { 
      $Feld2++; mod "Id==$_id",["Feld2",$Feld2],"Objekte";
      }
      </perl>
      

      Sander

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Montag, 4.Februar.2002, 11:43.
    Re: @Sander: Re: Inkrement; einfacher Zähler

      Hi Sander,
      erstmal vielen Dank für die ganze Mühe die Du Dir meinetwegen gemacht hast!
      Ich habe Dein Script in meine Templates eingesetzt.
      Das Listtemplate zählt jetzt mit. Da scheint alles okay zu sein.
      Allerdings gibt's jetzt beim Detailtemplate Probleme:
      Gebe ich gar nichts ein, also keine Objektnummer erscheint die Fehlermeldung:
      [ Fehler: (perl) in /gastro4sale/Objektdaten/Expose: syntax error at (eval 2039) line 11, next token ??? syntax error at (eval 2039) line 14, near "; }" ]

      Gebe ich eine einstellige Ziffer ein, kommt:
      [ Fehler: (perl) in /gastro4sale/Objektdaten/Expose: syntax error at (eval 7248) line 11, next token ??? syntax error at (eval 7248) line 14, near "; }" ]

      Gebe ich eine korrekte Objektnummer ein, erscheint gar nichts, das heißt es passiert nix, der Browser lädt nichts...

      Hier nochmal das (von Dir erstellte und von mir angepasste) Detailtemplate:

      <html><head><title></title></head>
      <body bgcolor=ffffff>
      <font face=arial,helvetica>
      <font size=1></font>
      <h3></h3>
      

      <perl>
       

      unless ($_sel{ObjektNr}=~ /^(\d{4,4})$/)
      { 
      out "Bitte geben Sie die 4-stellige ObjektNr ein"; 
      }else
      {
      do_list "ObjektNr==$_sel{ObjektNr} listtype=all db=Objekte listfields=-Id showamount=no selectbrowse=no Buttonbrowse=no databack=f0f0f0 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=2 gridcolor=b0b0b0 dataface=arial,helvetica";
      $Detailaufrufe++; 
      mod "Id==$_id",["Detailaufrufe",$Detailaufrufe],"Objekte";
      }
      </perl> 
      <p><font face=arial,helvetica size=2>
      <p><font size=1></font>
      

      </body></html>

      Hast Du eine Ahnung was los ist?
      Wäre wirklich sehr nett, wenn Du mir nochmal helfen würdest.
      Vielen Dank
      Phixxi

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 4.Februar.2002, 12:21.
    Re: @Sander: Re: Inkrement; einfacher Zähler

      jo, tausche mal do_list gegen do_all aus.

      Sander

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Montag, 4.Februar.2002, 14:59.
    Re: @Sander: Re: Inkrement; einfacher Zähler

      Mensch Sander, ich könnt' Dich knutschen!
      ES FUNZT!
      Unglaublich, aber es scheint echt alles zu klappen *superfreu*
      Mit fällt echt ein riesen Stein vom Herzen!
      Tausend Dank!!!
      Gruß
      Phixxi

     Antworten


     
 Liste der Einträge von 50701 bis 50851: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.05s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!