Beitrag von Achim (118 Beiträge) am Sonntag, 29.Juli.2001, 23:22.
Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Hallo zusammen,
kann mir jemand erklären was ich einrichten muß, um einen Termin, dessen Datum verstrichen ist, automatisch aus der Ausgabeseite gestrichen wird? Am besten sollter dieser Termin in Ein ARchiv wandern.
Ich habe eine Datenbank in der Veranstltungstermine stehen, ich möchte mir das löschen von Hand sparen und gleichzeitig die verstrichenen Termine in ein Archiv legen.
<br><b>
<do action=all databack=f0f0f0 datasize=2 headback=778899 border=0 spacing=1 padding=3 gridcolor=
FFFFFF dataface=verdana,arial,helvetica sort^=Von range^=0,20 pagebrowse=top buttonbrowse=top,bottom listtype=list listfields=Von,Bis,Veranstaltung,Wo?,eMail input=link>
Dies ist die bisherige Datenbank.
Würde mich über Hilfe freuen
Antworten
Beitrag von Sander (8133 Beiträge) am Sonntag, 29.Juli.2001, 23:44.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
mit ein bischen perl geht das.
Vor dem do action muß rein:
<perl>
if ($cmd eq "")
{
get "Bis<-1","dbname"; # dbname mit der orginaldb ersetzen
while (get_next("dbname")) # hier auch
{
%_put=%_get;
del "Id==$_id","dbname"; # und nochmal
put undef,"dbname2"; # dbname2 der archivdb ersetzen
}
}
</perl>
Das schreibt mit jedem Aufruf der Seite eventuelle Einträge von vor heute in das archiv um.
Sander
Antworten
Beitrag von Achim (118 Beiträge) am Sonntag, 29.Juli.2001, 23:48.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Hi Sander,
werd´s gleich mal probieren. Eine Frage habe ich noch, die Archivdatenbank, muß die genauso aufgenaut sein wie die DB aus der die Einträge ausgelesen werden sollen?...wahrscheinlich.
Ich probiers einfach mal.
Dank & Gruß aus Köln
Achim
Antworten
Beitrag von Achim (118 Beiträge) am Montag, 30.Juli.2001, 00:28.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Hi Sander,
hab´s probiert leider klappt es nicht. folgende Fehlermeldung erscheint jetzt auf der Orginalseite
[ Fehler: init: Permission denied to read /cgi-bin/baseportal.pl?htx=/smarty/Termine
Ursache: Die angegebene Datenbank ist für den gewünschten Zugriff nicht freigegeben.
Lösung: Gehen Sie in Ihren privaten Bereich (Anmelden), wählen Sie die entsprechende Datenbank aus, klicken Sie auf 'Verwaltung' und ändern
Sie die Rechte entsprechend. ]
Habe auf der Archiv Seite alle Rechte vergeben.DIe Seite ist eine 1-1 Kopie der Orginalseite.
Habe deine Source vor die doaction gestellt.
<perl>
if ($cmd eq "")
{
get "Bis<-1","/cgi-bin/baseportal.pl?htx=/smarty/Termine"; # dbname mit der orginaldb ersetzen
while (get_next("/cgi-bin/baseportal.pl?htx=/smarty/Termine")) # hier auch
{
%_put=%_get;
del "Id==$_id","/cgi-bin/baseportal.pl?htx=/smarty/Termine"; # und nochmal
put undef,"/cgi-bin/baseportal.pl?htx=/smarty/Termine_Archiv"; # dbname2 der archivdb ersetzen
}
}
</perl> <do action=all databack=f0f0f0 datasize=2 headback=778899 border=0 spacing=1 padding=3 gridcolor=
FFFFFF dataface=verdana,arial,helvetica sort^=Von range^=0,20 pagebrowse=top buttonbrowse=top,bottom listtype=list listfields=Von,Bis,Veranstaltung,Wo?,eMail input=link>
Gruß
Achim
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 30.Juli.2001, 00:40.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
probiers mal so:
<perl>
if ($cmd eq "")
{
get "Bis<-1","Termine"; # dbname mit der orginaldb ersetzen
while (get_next("Termine")) # hier auch
{
%_put=%_get;
del "Id==$_id","Termine"; # und nochmal
put undef,"Termine_Archiv"; # dbname2 der archivdb ersetzen
}
}
</perl> <do action=all db=Termine databack=f0f0f0 datasize=2 headback=778899 border=0 spacing=1 padding=3 gridcolor=
FFFFFF dataface=verdana,arial,helvetica sort^=Von range^=0,20 pagebrowse=top buttonbrowse=top,bottom listtype=list listfields=Von,Bis,Veranstaltung,Wo?,eMail input=link>
Sander
Antworten
Beitrag von Achim (118 Beiträge) am Montag, 30.Juli.2001, 01:11.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Hi Sander,
das klappt soweit in der OrginalDB (Termine) nur die Einträge in der ArchivDB sind leer. Da steht nur das Datum des heutigen tages drin. Aber keine Inhalte aus der OrginalDB.
Da steht in der OrginalDB noch ein Eintrag vom 28-29.07.01 dieser müßte doch eigentlich schon ins Archiv gewandert sein wenn´s klappten sollte, oder.
Wie gesagt, ich habe einen Eintrag in der OrginalDB mit altem Datum vorgenommen, dieses wurde nicht in die Orginal DB geschrieben und es gab einen Eintrag im Archiv...nur leider ohne Inhalt lediglich das Datum erschien. Das kuriose ist noch, das der Eintrag gedoppelt wird.
http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/smarty/Termine
http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/smarty/Termine_Archiv
Gruß
Achim
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 30.Juli.2001, 14:50.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Dann wohl doch nur so ;-)
if ($cmd eq "")
{
get "Bis<jetzt","Termine"; # dbname mit der orginaldb ersetzen
while (get_next("Termine")) # hier auch
{
del "Id==$_id","Termine"; # und nochmal
put ["feldname1",$feldname1,"feldname2",$feldname2,"feldname3",$feldname3,"usw",$usfort],"Termine_Archiv"; # dbname2 der archivdb ersetzen, Feldnamen auch ersetzen, für jedes in der Db vorkommende Feld
}
}
</perl> <do action=all db=Termine databack=f0f0f0 datasize=2 headback=778899 border=0 spacing=1 padding=3 gridcolor=
FFFFFF dataface=verdana,arial,helvetica sort^=Von range^=0,20 pagebrowse=top buttonbrowse=top,bottom listtype=list listfields=Von,Bis,Veranstaltung,Wo?,eMail input=link>
Sander
Antworten
Beitrag von Achim (118 Beiträge) am Montag, 30.Juli.2001, 16:32.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Hi Sander,
habe die Feldnamen eingegeben...nun habe ich leider ´ne perl Fehlermeldung, was ist falsch?
[ Fehler: (perl) in /smarty/Termine: Unrecognized character \374 at (eval 147) line 15, chunk 1. ]
<perl>
if ($cmd eq "")
{
get "Bis<jetzt","Termine"; # dbname mit der orginaldb ersetzen
while (get_next("Termine")) # hier auch
{
del "Id==$_id","Termine"; # und nochmal
put
["Von",$Von,"Bis",$Bis,"Veranstaltung",$Veranstaltung,"Wo",$Wo,"Was",$Was,"eMail",$eMail,"Homepage",$Homepage,"Telefon",$Telefon],"Termine_Archiv"; #
dbname2 der archivdb ersetzen, Feldnamen auch ersetzen, für jedes in der Db vorkommende Feld
}
}
</perl>
Ich hatte diese schon beim ersten Einbau und dachte das die Fragezeichen und Leerschläge, die ich in den Feldnamen hatte wären schuld daran...habe darufhin diese geändert.
Was muß ich machen...?
Gruß&Dank
Achim
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 30.Juli.2001, 19:49.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Vergiss den 2ten code, mir is ne bessere lösung zum ersten eingefallen :-)
<perl>
if ($cmd eq "")
{
get "Bis<jetzt","Termine"; # dbname mit der orginaldb ersetzen
while (get_next("Termine")) # hier auch
{
%_put=%_loop;
del "Id==$_id","Termine"; # und nochmal
put undef,"Termine_Archiv"; # dbname2 der archivdb ersetzen
}
}
</perl>
Sander
Antworten
Beitrag von Achim (118 Beiträge) am Montag, 30.Juli.2001, 20:34.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Hi Sander,
wie befohlen ;-)...hab deinen neuen Code eigesetz...klappte auch, der alte Termin der bis gestern lief ist auch raus.....NUR LEIDER NICHT INS ARCHIV :....-(((heul*
Ich habe das Archiv genau so gebaut wie die Orginale DB (via kopieren)
Die Anzeige zeigt jetzt 21 Einträge die keinen Inhalt haben ....ähhhh?
Anbei der Code der Archiv DB
<do action=all db=Termine_Archiv databack=f0f0f0 datasize=2 headback=778899 border=0 spacing=1 padding=3 gridcolor=
FFFFFF dataface=verdana,arial,helvetica sort^=Von range^=0,20 pagebrowse=top buttonbrowse=top,bottom listtype=list listfields=Von,Bis,Veranstaltung,Wo,eMail input=link>
Die beiden Datumsfelder (Von...Bis) werden sortiert.
Wir kriegen das hin, oder?
Gruß&Dank
Achim
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 30.Juli.2001, 21:03.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Das wird schon... ;-)
Wenn du mir noch ein Schreibrecht kurzzeitig einräumen könntest für das Archiv, könnte ich es testen. Kaputt mache ich da ja (noch) nichts, oder? ;-)
Sander
Antworten
Beitrag von Achim (118 Beiträge) am Montag, 30.Juli.2001, 21:11.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Hi Sander,
wenn du die Rechte in der DB meinst...da ist jetzt alles offen. ändern, löschen etc. wenne meinen zugang braucht´s auch kein problem...bräuchte nur deine elektropost adresse.
bis gleich ;-)
Achim
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 30.Juli.2001, 23:15.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
so, dann doch die 2te Variante... komisch, das das mit erstens nicht klappt.
<perl>
if ($cmd eq "")
{
get "Bis<jetzt","Termine"; # dbname mit der orginaldb ersetzen
while (get_next("Termine")) # hier auch
{
del "Id==$_id","Termine"; # und nochmal
put ["Von",$Von,"Bis",$Bis,"Veranstaltung",$Veranstaltung,"Wo",$Wo,"Was",$Was,"eMail",$eMail,"Homepage",$Homepage,"Telefon",$Telefon],"Termine_Archiv";
}
}
</perl>
Das hab ich nun geprüft ;-)
Sander
Antworten
Beitrag von Achim (118 Beiträge) am Montag, 30.Juli.2001, 23:35.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
.....mmmmhhhhh, spiiiiitze!
wo ist die krone?....und zum ritter hätte man dich auch schlagen sollen!
zwehundertvierundzwanzigmal ....danke! et läuft.
....aber weißt du warum der eintrag immer noch doppelt ins archiv gestellt wird?
wenn´s fertig ist stell ich mein erstes template in die doku, is das o.k.? oder ist so´ne termin db zu profan?
gruß & dank aus köln
achim
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 30.Juli.2001, 23:44.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
hmmm, das doppelte könnte passieren, wenn do action=all im Template steckt, weil da steckt put mit drin. Vielleicht gehts, wenn du die Rechte wieder entfernst, perl interessiert es nämlich nicht ob rechte da sind. oder du schreibst vor </perl> noch
%_put="";
weiß aber nicht ob es so funzen kann, nur Vermutungen. Wenns nicht geht, machen wir uns halt weiter Gedanken ;-)
In die Bib wäre vieleicht als Beispiel gut als "autom. löschen/verschieben von abgelaufenen Terminen". Die Frage kommt hier ja oft.
Sander
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 30.Juli.2001, 23:46.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
halt,
%_put="";
nicht vor </perl> sondern vor der letzten Klammer vor </perl>
%_put="";
Sander
Antworten
Beitrag von Achim (118 Beiträge) am Dienstag, 31.Juli.2001, 00:10.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
....gääähn, ne...klappt auch nicht
hab´s so eingesetzt...
macht aber weiterhin doppelte Archiveinträge.
Naja, der Rest funktioniert ja schon mal ;-)
Achim
Antworten
Beitrag von Achim (118 Beiträge) am Dienstag, 31.Juli.2001, 23:39.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
hi sander,
hab heute mal in ein per buch geschaut....ohoh, also ich galube bis ich da was gescheites auf die kette kriege, dauert noch so 50-60 jahre :-)
hab darin auch nicht echt was gefunden (hab´s auch kaum kappiert :-(()
haste denn schon ne idee?
achim
Antworten
Beitrag von Sander (8133 Beiträge) am Dienstag, 31.Juli.2001, 23:44.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
na wenn du noch nicht so alt bist, kanns ja noch was werden ;-)
schreib nochmal den kompletten Code dieses Templates hier rein, am besten in einen neuen Thread, sonst vergess ich es wieder ;-)
Sander
Antworten
Beitrag von Achim (118 Beiträge) am Montag, 30.Juli.2001, 23:56.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Hi,
hab´s ausprobiert, beide varianten. Bei der%_put="", wird ein neuer eintrag in die Orginal DB geschrieben und keiner in´s Archiv.
Bei der Rechtevergabe ändert sich auch nichts....habe momentan wieder nur abfragen eingestellt.
Ich werde mal die doppelte Datumssortierung aus den beieden DB rausschmeißen und nur nach Von sortieren lassen. Vieleicht.....
Ansonsten bis später
achim
Antworten
Beitrag von Markus (0 Beiträge) am Mittwoch, 27.März.2002, 02:03. WWW: mgcbadems.de
Re: Automatisch abgelaufene Einträge... Doppelter Archiveintag-Lösung?
Hallo zusammen,
habe aus der Bib den Code für "Löschen abgelaufener Termine und Eintrag in Archiv" kopiert und auf meine Bedürfnisse angepasst. Funzt super - nur: habe auch das Problem der doppelten Einträge im Archiv. Hat jemand dazu schon eine Lösung?
Hier der Code:
<perl>
if ($cmd eq "")
{
get "Datum<jetzt","turnierkalender"; # dbname mit der orginaldb ersetzen
while (get_next("turnierkalender")) # hier auch
{
del "Id==$_id","turnierkalender"; # und nochmal
put
["Datum",$Datum,"Turniername",$Turniername,"Spielweise",$Spielweise,"Vorgabenwirksam",$Vorgabenwirksam,"Offen",$Offen,"Handicapbegrenzung",$Handicapbegrenzung,"Gesperrt_von",$Gesperrt_von,"Gesperrt_bis",$Gesperrt_bis,"Wo_gesperrt",$Wo_geseprrt],"turnierkalender_archiv";
}
}
</perl>
<center>
<do action=all databack=FFFFFF dataalign=middle headalign=middle sort^=Datum range^=0,14 pagebrowse=yes buttonbrowse=bottom listfields=Datum,Turniername,Gesperrt_von,Gesperrt_bis input=link searchfields=Datum,Turniername,Vorgabenwirksam,Offen>
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 27.März.2002, 08:07.
Re: Automatisch abgelaufene Einträge... Doppelter Archiveintag-Lösung?
probier mal nach put ein
undef %_put;
Sander
Antworten
Beitrag von Markus (0 Beiträge) am Mittwoch, 27.März.2002, 08:47.
Re: Automatisch abgelaufene Einträge... Doppelter Archiveintag-Lösung?
Danke Sander. Bin absoluter Perl-Looser - keine Ahnung! Deshalb:
HELP! Wenn ich das mache, schreibt er leere Datensätze in die Originaldatenbank. Hab´s so gemacht:
<perl>
if ($cmd eq "")
{
get "Datum<jetzt","turnierkalender"; # dbname mit der orginaldb ersetzen
while (get_next("turnierkalender")) # hier auch
{
del "Id==$_id","turnierkalender"; # und nochmal
put undef %_put;
["Datum",$Datum,"Turniername",$Turniername,"Spielweise",$Spielweise,"Vorgabenwirksam",$Vorgabenwirksam,"Offen",$Offen,"Handicapbegrenzung",$Handicapbegrenzung,"Gesperrt_von",$Gesperrt_von,"Gesperrt_bis",$Gesperrt_bis,"Wo_gesperrt",$Wo_geseprrt],"turnierkalender_archiv";
}
}
</perl>
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 27.März.2002, 09:16.
Re: Automatisch abgelaufene Einträge... Doppelter Archiveintag-Lösung?
<perl>
if ($cmd eq "")
{
get "Datum<jetzt","turnierkalender"; # dbname mit der orginaldb ersetzen
while (get_next("turnierkalender")) # hier auch
{
del "Id==$_id","turnierkalender"; # und nochmal
put ["Datum",$Datum,"Turniername",$Turniername,"Spielweise",$Spielweise,"Vorgabenwirksam",$Vorgabenwirksam,"Offen",$Offen,"Handicapbegrenzung",$Handicapbegrenzung,"Gesperrt_von",$Gesperrt_von,"Gesperrt_bis",$Gesperrt_bis,"Wo_gesperrt",$Wo_geseprrt],"turnierkalender_archiv";
undef %_put;
}
Sander
Antworten
Beitrag von Markus (0 Beiträge) am Mittwoch, 27.März.2002, 09:33.
Re: Automatisch abgelaufene Einträge... Doppelter Archiveintag-Lösung?
Danke Sander, Du bist der hilfsbereiteste Mensch, den ich kenne! Aber leider (heul): so kommen wieder doppelte Einträge. Ist doch wie verhext, oder?
Antworten
Beitrag von Achim (118 Beiträge) am Montag, 30.Juli.2001, 00:41.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Hi Sander,
das mit der übertragung hat bei einem Testlauf funktioniert, habe ein abgelaufenes Datum genommen, da in meine Orginaldb zwar eins bis 29.07.01 steht aber dies bisher nicht übertragen wurde.
Ich hab in die OrginalDB einen Eintrag vorgenommen der dann auch nicht in der Orgianalausgabe erschien...im Archiv wurden zwar Einträge gemacht doch leider ohne Inhalt.
Gruß
Achim
Antworten
Beitrag von Werner (67 Beiträge) am Donnerstag, 27.März.2003, 15:07. WWW: www.die-veranstaltung.at
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Hallo,
gibt es schon eine Lösung um die doppelten Einträge in der Archiv_DB zu verhindern?
LG
Werner
Antworten
Beitrag von Petra (29 Beiträge) am Dienstag, 28.September.2004, 14:21.
Re: Automatisch abgelaufene Einträge aus der Ausgabe entfernen
Das würde mich ebenfalls sehr interessieren...
Weiß jemand, wie man die doppelten Einträge umgehen/verhindern kann?
lg, Petra
Antworten