Re: Sorry - ich nochmal - 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 Montag, 24.September.2001, 14:22.
    Re: Sorry - ich nochmal

      Schmeiss hier mal den ganzen Code für den Geburtstag rein.


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Old Eagle Eye (148 Beiträge) am Freitag, 21.September.2001, 11:42. WWW: www.bigmountain.at
    Anfänger bittet um Unterstützung bei Datumsfeld

      Hallo Forum

      Als neuer Anwender von baseportal bin ich auf ein Problem aufgelaufen, welches für mich derzeit unlösbar aussieht. Ich hoffe, dass mein Problem nicht ohnehin schon zig-mal im Forum geklärt wurde - ich habe zumindest nichts entdecken können, was mir weitergeholfen hätte und daher meine Frage:

      Ich habe in meiner DB ein Feld Geburtstag folgendermassen definiert:
      Feldname: Geburtstag
      Sortierung: ja
      Zeitpunkt: Nutzereingabe
      eigenes Eingabeformat: Tag Monatname Jahr
      eigenes Ausgabeformat: Tag. Monatname Jahr

      Jetzt hätte ich gerne eine Ausgabe, die auflistet, welche der erfassten Personen im aktuellen Monat Geburtstag hat. Klingt trivial, ich schaffe es aber trotzdem nicht. Bis jetzt konnte ich nur alle Personen herausfiltern, welche in einem bestimmten Jahr geboren wurden und zwar sieht 'mein Code' dazu so aus:

      ....<do action=list listtype=list db=BMC sort=Geburtstag _Geburtstag_Jahr==1959 listfields=Geburtstag,Name,Vorname,eMail ....

      Bei dieser Abfrage ist auch das Jahr nur statisch, ich bräuchte aber das Monat 'dynamisch' - eben je nach aktuellem Monat.

      Vielleicht kann mir einer von euch den 'richtigen' Code als Beispiel zur Verfügung stellen.

      Vielen Dank im Voraus
      Norbert
      aka Old Eagle Eye

      PS: Habe keine Perl Erfahrung (aber das merkt man ja wahrscheinlich schon an meiner Frage)

     Antworten

    Beitrag von Oliver ;-) (439 Beiträge) am Freitag, 21.September.2001, 17:31.
    Re: Anfänger bittet um Unterstützung bei Datumsfeld

      Hallo Norbert,

      den aktuellen Monat kannst du über eine Variable ermitteln und dann weitergeben.

      <perl>
      $aktuellmonat=datum("jetzt","Monatname"); ## wenn du nur Monat anstelle Monatname eingibst erhälst den Monat als Zahl
      </perl>
      

      Diese Variable baust du dann in dein Template ein.

      Oliver ;-)

     Antworten

    Beitrag von Old Eagle Eye (148 Beiträge) am Montag, 24.September.2001, 07:56. WWW: www.bigmountain.at
    Re: Der Anfang ist gemacht, wie gehts weiter ....

      Danke Oliver - jetzt hab ich's, wie man das aktuelle Monat, oder den Tag, oder ähnliches erruiert, aber für mein 'Problem' ist das leider nur die 'halbe Lösung'.

      Ich brauche nämlich die Syntax, wie man vergleicht, ob das gespeicherte Geburtsdatum dasselbe Monat enthält, wie eben das aktuelle.

      Mein Code (zumindest der relevante Teil) dazu sieht so aus - ist aber (leider) definitiv falsch!!
      ##
      

      <loop db=BMC sort=Geburtstag,Name code=perl>

      aktuellGebDat($Geburtstag, "Monat Tag Jahr");

      if ($aktuellGebDat~=$aktuellmonat)
      {
         out "<td nowrap><p align=right><b>$Geburtstag</p></td>
              <td><p>$Vorname</p></td>
              <td><p>$Name</p></td>
              </tr>";
      }
      </loop>
      ##
      

      Vielleicht kannst du (oder sonst einer der sich ebenfalls auskennt) mir diesbezüglich noch auf die Sprünge helfen - wäre toll

      Danke
      Norbert

     Antworten

    Beitrag von Oliver ;-) (439 Beiträge) am Montag, 24.September.2001, 09:31.
    Re: Der Anfang ist gemacht, wie gehts weiter ....

      Hallo Norbert,

      versuche es mal so:

      <perl>
      $aktuellmonat=datum("jetzt","Monat");
      get "Id=* _Geburtstag_Monat==$aktuellmonat","BMC";
      while (get_next("BMC"))
      {
      out "<td nowrap><p align=right><b>$Geburtstag</p></td>
      <td><p>$Vorname</p></td>
      <td><p>$Name</p></td>
      </tr>";
      }
      </perl>
      

      Oliver ;-)

     Antworten

    Beitrag von Old Eagle Eye (148 Beiträge) am Montag, 24.September.2001, 09:54. WWW: www.bigmountain.at
    Re: Der Anfang ist gemacht, wie gehts weiter ....

      Hi Oliver

      Erstmal vielen Dank, dass du dir für mein Anliegen Zeit nimmst, aber auch diesmal war es leider ebenfalls ein Satz mit 'X' = war wohl niX

      Die Abfrage findet einfach niemanden (Var $_amount ergibt 0), der im September Geburtstag hat (siehe http://baseportal.de/cgi-bin/baseportal.pl?htx=/BMC/GeburtstagMonat), dabei sind da aber definitiv einige Geburtstagskinder vorhanden.

      Ich hatte mir eigentlich vorgenommen, mit einer 'ganz einfachen Geschichte' zu beginnen, aber offensichtlich .....

      Norbert

     Antworten

    Beitrag von Oliver ;-) (439 Beiträge) am Montag, 24.September.2001, 11:10.
    Re: Der Anfang ist gemacht, wie gehts weiter ....

      Heißt denn die Datenbank auch "BMC" oder nur dein Account? Wenn ja, dann versuche es mal so:

      <perl>
                   $aktuellmonat=datum("jetzt","Monatname");
      get "Id=* _Geburtstag_Monat==$aktuellmonat","BMC";
      while (get_next("BMC"))
      {
      out "<td nowrap><p align=right><b>$Geburtstag</p></td>
      <td><p>$Vorname</p></td>
      <td><p>$Name</p></td>
      </tr>";
      }
      </perl>
      

      Ansonsten musst du BMC durch deinen Namen für die DB tauschen.

      Oliver ;-)

     Antworten

    Beitrag von Old Eagle Eye (148 Beiträge) am Montag, 24.September.2001, 13:37. WWW: www.bigmountain.at
    Sorry - ich nochmal

      Hallo Oliver,

      Das stimmt soweit alles - es geht aber trotzdem nichts.

      Zur Erklärung kannst du ja mal http://baseportal.de/cgi-bin/baseportal.pl?htx=/BMC/GeburtstagJahr aufrufen, damit du genau verstehst, was ich meine.

      Ich habe dort eine Variable definiert, welche errechnet, wer heuer 45 wird. Wenn ich die Abfrage entsprechend ausführe, erhalte ich alle aus dem Jahrgang 1956 - super!
      Die Abfrage ltd. wie folgt:
      <loop db=BMC _Geburtstag_Jahr==$weristwiealt sort=_Geburtstag_Tag code=perl>
      

      Was man an der Ausgabe sofort erkennt, die Sortierung nach _Geburtstag_Tag geht auch nicht!

      Das bringt mich zu dem Schluss, dass man mit diesem Datumsfeld Geburtstag (TT. MMMM JJJJ) offensichtlich 'nicht ordentlich' arbeiten kann, denn eine andere Abfrage mit <loop db=BMC _Geburtstag_Monat==$aktuellmonatname sort=_Geburtstag_Tag code=perl>
      oder auch mit
      <loop db=BMC _Geburtstag_Monat==$aktuellmonat sort=_Geburtstag_Tag code=perl>
      
      liefert kein Ergebnis - siehe dazu http://baseportal.de/cgi-bin/baseportal.pl?htx=/BMC/GeburtstagMonat

      An den echten GeburtsTAG taste ich mich erst gar nicht heran, obwohl es prinzipiell irgendwie gehen muss, wie man in der Comunity von Sascha Fitzner (http://www.planet-gaga.de/) sehen kann, aber vielleicht hat der ja das Geburtsdatum bei der Erfassung schon in einzelne Einheiten zerlegt (diese Arbeit wollte ich mir eigentlich ersparen).

      Wenn ich im übrigen den Code so einbaue, wie du das vorgeschlagen hast, habe ich das gleiche Ausgabebild (es funktioniert auch nicht), mit dem Unterschied, dass das Geburtsdatum im Format JJJJ.MM.TT,HH:MM:SS#n ausgegeben wird.

      Wenn du noch einen weiteren Vorschlag für mich hättest - wäre ich dankbar!
      Norbert

     Antworten

    Beitrag von Oliver ;-) (439 Beiträge) am Montag, 24.September.2001, 14:22.
    Re: Sorry - ich nochmal

      Schmeiss hier mal den ganzen Code für den Geburtstag rein.

     Antworten

    Beitrag von Old Eagle Eye (148 Beiträge) am Montag, 24.September.2001, 14:36. WWW: www.bigmountain.at
    Der Code (wie er bisher ist)

      Codebeispiel:

      <html>
      <head>
      <meta name="REPLY-TO" content="webmaster@bigmountain.at">
      <meta http-equiv="pragma" content="no-cache">
      <title>Big Mountain Chapter #9722 der Harley Owners Group - Geburtstagsliste</title>
      <link rel="stylesheet" type="text/css" href="http://www.bigmountain.at/_private/bmc.css">
      

      <perl>
      $aktuelltag=datum("jetzt","Tag");
      $aktuellmonat=datum("jetzt","Monat");
      $aktuellmonatname=datum("jetzt","Monatname");
      $aktuelljahr=datum("jetzt","Jahr");
      $aktuelldatum=datum("jetzt","Tag. Monatname Jahr");
      </perl>
      

      </head>

      <body>
      <table width="90%" cellspacing="0" cellpadding="3" align="center" border="1" bordercolor="#626262">
        <tr>
          <td colspan=2><p align=center>Wer hat denn im <b>Monat $aktuellmonatname</b> Geburtstag</p></td> 
        </tr> 
        <tr bgcolor="#FF6000" align="center" valign="middle">
              <td bgcolor="#FF6000"> 
            <p><b>Name</b></p>
          </td>
          <td> 
            <p><b>Geburtsdatum</b></p>
          </td></tr>
      

      <loop db=BMC _Geburtstag_Monat == $aktuellmonatname sort=_Geburtstag_Tag code=perl>

      if ($Anrede cmp "Herr")
      {
         out "<tr bgcolor=\"#FFCC99\" valign=top>";
      }else
      {
         out "<tr bgcolor=\"#FF9966\" valign=top>";
      

      }out "<td><p>$Vorname <b>$Name</b></p></td>
            <td nowrap><p align=right><b>$Geburtstag</p></td>
            </tr>";
      </loop>
      </table>
      

      <p>&nbsp;</p>

      <table width="90%" cellspacing="0" cellpadding="0" align="center">
        <tr align="center" valign="middle">
          <td>
      <p align=center>Insgesamt wurden <b>$_amount</b> passende Einträge gefunden</p><h5>Und wieder steht hier $_amount - obwohl ich feststellen kann, dass es Geburtstage im $aktuellmonatname gibt<br>und zwar anhand der Funktion (mit der fix eingestellten Variable) <a href="http://baseportal.de/cgi-bin/baseportal.pl?htx=/BMC/GeburtstagJahr">Wer wird heuer 45</a>.</h5>
         </td>
        </tr>
      </table>
      </body>
      </html>
      


      Ich habe dir hier den kompletten Code reingegeben, wobei diverse Teile (z.B.: Tabellendefinitionen, etc.) im 'Echtbetrieb' mittel <include src=...> aus eigenen Textbausteinen aufgerufen werden. Dort liegt ja aber auch nicht der Fehler - die Formatierung der Augabe passt ja - nur die Formulierung der Abfrage ist Käse.

      Gruß
      Norbert

      PS: In der Doku steht, dass es anscheinend gar nicht geht, irgendwelche Datumsteile (außer dem Jahr) abzufragen?!? Vielleicht muss ich ja wirklich mein Geburtstagsfeld 'neu definieren' - das wäre allerding :-(

     Antworten

    Beitrag von Oliver ;-) (439 Beiträge) am Montag, 24.September.2001, 16:15.
    Re: Der Code (wie er bisher ist)

      Also, du hast es schon richtig gelesen. Der Knackpunkt ist das Jahr (es sei denn Christoph oder Sander sagen was anderes...). Ich habe mal eingenes Format beim Datum eingegeben und dies auf Tag und Monat beschränkt:

      Zeitpunkt=Nutzereingabe, eigenes Eingabeformat=Tag.Monat, eigenes Ausgabeformat=Tag0.Monatname

      So klappt es dann mit dem Code (habe jetzt nur mal die relevanten Teile genommen):

      <perl>
      $aktuellmonat=datum("jetzt","Monat");
      $aktuellmonatname=datum("jetzt","Monatname");
      </perl>
      

      <table width="90%" cellspacing="0" cellpadding="3" align="center" border="1" bordercolor="#626262">
      <tr>
      <td colspan=2><p align=center>Wer hat denn im <b>Monat $aktuellmonatname</b> Geburtstag</p></td> 
      </tr> 
      <tr bgcolor="#FF6000" align="center" valign="middle">
      <td bgcolor="#FF6000"> 
      <p><b>Name</b></p>
      </td>
      <td> 
      <p><b>Geburtsdatum</b></p>
      </td></tr>
      <loop db=BMC _Geburtstag_Monat==$aktuellmonat sort=_Geburtstag_Tag code=perl>
      

      out "<td><p>$Vorname <b>$Name</b></p></td>
      <td nowrap><p align=right><b>$Geburtstag</p></td>
      </tr>";
      </loop>
      </table>
      

      Oliver ;-)

     Antworten

    Beitrag von Old Eagle Eye (148 Beiträge) am Mittwoch, 26.September.2001, 13:46. WWW: www.bigmountain.at
    Thema erledigt

      Danke Oliver für dein Unterstützung!

      Das Thema habe ich jetzt insofern erledigt, dass ich eben mein Geburtstagsfeld verändert habe - ist zwar nicht so schön diese Lösung - aber es funktioniert bestens.

      Danke nochmals
      Norbert

     Antworten


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