Re: automatischer CSV Import - 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 Sander (8133 Beiträge) am Mittwoch, 21.Dezember.2005, 11:27.
    Re: automatischer CSV Import

      denn mach mal nach
      $content=get "http://blabla.de/logfiles/$now.csv";
      
      ein
      out $content;

      ich denke, da kommt dann ne fehlermeldung von dem anderen server


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Reiner (306 Beiträge) am Dienstag, 20.Dezember.2005, 17:46. WWW: tickets-und-eintrittskarten.de
    automatischer CSV Import

      Hallo Sander,
      Hier der neue thread....

      Der alte war das...
      http://forum.baseportal.de/baseportal/baseportal/forum&wcheck=1&range=150,150&Pos=12125



      hab das so gemacht und das wird auch fehlerfrei abgearbeitet.

      <perl>
      $now=datum("jetzt",'JahrMonat0Tag0');
       
      

      $content=get "http://admin.blabla.de/logfiles/$now.csv";


      @lines=split/\n/,$content; ## datensätze aufdröseln
       
      

      # wenn erste zeile feldnamen sind, kommentar davor entfernen


      shift @lines;
       
      

      foreach $ds (@lines){


        @values=split/;/,@ds; ## einzelne werte des ds aufdröseln
        $Karten=<<EOF;
      <a href="http://topevents24.cc/shop/default.asp?id=3641&id2=&usid=691104901021&cust=&log=login&agid=&key=&mode=shop&shopid=$SHOPID&title=$TITEL&descr=$BESCHREIBUNG&place=$ORT&venue=$SPIELSTAETTE" target="_blank">
      <img border="0" src="http://www.daten-banken.de/infos-ueber-tickets-und-eintrittskarten.gif" width="32" height="16"></a>
      EOF
      put ["DATUM",$values[0],"TITEL",$values[1],"BESCHREIBUNG",$values[2],"ORT",$values[2],"SPIELSTAETTE",$values[2],"PROV",$values[2],"KAT",$values[2],"SHOPID",$values[2]],"topevents"; # achtung $values beginnt bei 0
      }
      

      </perl>

      Ich weis nicht ob das so richtig ist....
      In die Datenbank wird auch was geschrieben.
      Und zwar 59 Datensätze mit dem Heutigen Datum.
      Die anderen Felder sind leer.
      Vom Heutigen Datum existiert aber noch gar keine Datei..
      Wir müssten entweder immer die aktuellste oder zumindest Heute-1 nehmen.
      Kannst Du bitte noch mal drüber schauen?

      Grüße
      Reiner

     Antworten

    Beitrag von Sander (8133 Beiträge) am Dienstag, 20.Dezember.2005, 22:34.
    Re: automatischer CSV Import

      $now=datum("-1",'JahrMonat0Tag0');
      
      das aktuelleste ist schwierig

      reicht gestern?

     Antworten

    Beitrag von Reiner (306 Beiträge) am Mittwoch, 21.Dezember.2005, 06:14. WWW: tickets-und-eintrittskarten.de/
    Re: automatischer CSV Import

      Hallo Sander,
      gerade Gestern ist für meine Fälle besser...
      Hab das jetzt so eingebaut:
      <perl>
      $now=datum("-1",'JahrMonat0Tag0');
       
      

      $content=get "http://blabla.de/logfiles/$now.csv";


      @lines=split/\n/,$content; ## datensätze aufdröseln
       
      

      # wenn erste zeile feldnamen sind, kommentar davor entfernen

      <perl>
      $now=datum("-1",'JahrMonat0Tag0');
       
      

      $content=get "http://admin.topevents24.cc/logfiles/$now.csv";


      @lines=split/\n/,$content; ## datensätze aufdröseln
       
      

      # wenn erste zeile feldnamen sind, kommentar davor entfernen


      shift @lines;
       
      

      foreach $ds (@lines){


        @values=split/;/,@ds; ## einzelne werte des ds aufdröseln
        $Karten=<<EOF;
      <a href="http://topevents24.cc/shop/default.asp?id=3641&id2=&usid=691104901021&cust=&log=login&agid=&key=&mode=shop&shopid=$SHOPID&title=$TITEL&descr=$BESCHREIBUNG&place=$ORT&venue=$SPIELSTAETTE" target="_blank">
      <img border="0" src="http://www.daten-banken.de/infos-ueber-tickets-und-eintrittskarten.gif" width="32" height="16"></a>
      EOF
      put ["DATUM",$values[0],"TITEL",$values[1],"BESCHREIBUNG",$values[2],"ORT",$values[2],"SPIELSTAETTE",$values[2],"PROV",$values[2],"KAT",$values[2],"SHOPID",$values[2]],"topevents"; # achtung $values beginnt bei 0
      } 
      

      </perl>
         

      shift @lines;
       
      

      foreach $ds (@lines){


        @values=split/;/,@ds; ## einzelne werte des ds aufdröseln
        $Karten=<<EOF;
      <a href="http://topevents24.cc/shop/default.asp?id=3641&id2=&usid=691104901021&cust=&log=login&agid=&key=&mode=shop&shopid=$SHOPID&title=$TITEL&descr=$BESCHREIBUNG&place=$ORT&venue=$SPIELSTAETTE" target="_blank">
      <img border="0" src="http://www.daten-banken.de/infos-ueber-tickets-und-eintrittskarten.gif" width="32" height="16"></a>
      EOF
      put ["DATUM",$values[0],"TITEL",$values[1],"BESCHREIBUNG",$values[2],"ORT",$values[2],"SPIELSTAETTE",$values[2],"PROV",$values[2],"KAT",$values[2],"SHOPID",$values[2]],"topevents"; # achtung $values beginnt bei 0
      } 
      

      </perl>
         
      In meiner CSV Datei sind aber nur 2 Einträge vorhanden.
      In die Baseportal Datenbank wurden allerdings 59 Datensätzen übernommen.
      Und diese auch nur mit dem Feld Datum gefüllt.
      Und das Datum ist trotz $now=datum("-1" von Heute...

      Da hab ich doch bestimmt was mit der Felderzuordnung im Script durcheinander gebracht oder?

      Viele Grüße
      Reiner

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 21.Dezember.2005, 11:07.
    Re: automatischer CSV Import

      zeig mal ein ausschnitt aus dem csv (ersten 3 zeilen)

     Antworten

    Beitrag von Reiner (306 Beiträge) am Mittwoch, 21.Dezember.2005, 11:11. WWW: tickets-und-eintrittskarten.de
    Re: automatischer CSV Import

      DATUM;TITEL;BESCHREIBUNG;ORT;SPIELSTÄTTE;PROV;KAT;SHOPID
      25.05.06;Formel-1 GP von Monaco;Event-Reise bis 29.05.06;Monte Carlo;Stadtkurs;2;7;4080
      08.09.06;Formel-1 GP von Italien;Event-Reise bis 11.09.06;Monza;Autodrome Nazionale;2;7;138

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 21.Dezember.2005, 11:27.
    Re: automatischer CSV Import

      denn mach mal nach
      $content=get "http://blabla.de/logfiles/$now.csv";
      
      ein
      out $content;

      ich denke, da kommt dann ne fehlermeldung von dem anderen server

     Antworten

    Beitrag von Reiner (306 Beiträge) am Mittwoch, 21.Dezember.2005, 12:02. WWW: tickets-und-eintrittskarten.de
    Re: automatischer CSV Import

      Dann bekomm ich diese Meldung

      http error 404
      Datei nicht gefunden – File Not Found

      Die von Ihnen aufgerufene Seite existiert nicht. Bitte überprüfen Sie Ihre Eingabe. Möglichweise wurde die Seite auch umbenannt oder entfernt.

      Sorry, there is no web page matching your request. It is possible you typed the address incorrectly, or that the page no longer exists.

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 21.Dezember.2005, 13:29.
    Re: automatischer CSV Import

      daher kommen die 59 einträge. diese seite hat sicher 60 zeilen.
      ok, schreib mal
      out "http://admin.blabla.de/logfiles/$now.csv"; und guck ob der link korrekt ist bzw ob dann auch unter dieser adresse die fehlermeldung kommt.
      

     Antworten

    Beitrag von Reiner (306 Beiträge) am Mittwoch, 21.Dezember.2005, 13:41. WWW: tickets-und-eintrittskarten.de
    Re: automatischer CSV Import

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 21.Dezember.2005, 14:57.
    Re: automatischer CSV Import

      Fehler gefunden

      $now=datum("-1",'Jahr Monat0 Tag0');
      $now=~s/ //g;
      $content=get "http://blabla.de/logfiles/$now.csv";
      

      nun sollte der richtige content kommen.

      zum csv und den values:

      $Karten=<<EOF;
      <a href="http://topevents24.cc/shop/default.asp?id=3641&id2=&usid=691104901021&cust=&log=login&agid=&key=&mode=shop&shopid=$value[7]&title=$value[1]&descr=$value[2]&place=$value[3]&venue=$value[4]" target="_blank">
      <img border="0" src="http://www.daten-banken.de/infos-ueber-tickets-und-eintrittskarten.gif" width="32" height="16"></a>
      EOF
      put ["DATUM",$values[0],"TITEL",$values[1],"BESCHREIBUNG",$values[2],"ORT",$values[3],"SPIELSTAETTE",$values[4],"PROV",$values[5],"KAT",$values[6],"SHOPID",$values[7]],"topevents"; # achtung $values beginnt bei 0
      

     Antworten

    Beitrag von Reiner (306 Beiträge) am Mittwoch, 21.Dezember.2005, 16:56. WWW: tickets-und-eintrittskarten.de
    Re: automatischer CSV Import

      Das ist der gesammte Code:
      <perl>
      $now=datum("-1",'Jahr Monat0 Tag0');
      $now=~s/ //g;
      $content=get "http://blabla.de/logfiles/$now.csv";
      @lines=split/\n/,$content; ## datensätze aufdröseln
       
      

      # wenn erste zeile feldnamen sind, kommentar davor entfernen


      shift @lines;
       
      

      foreach $ds (@lines){


      $Karten=<<EOF;
      <a href="http://topevents24.cc/shop/default.asp?id=3641&id2=&usid=691104901021&cust=&log=login&agid=&key=&mode=shop&shopid=$value[7]&title=$value[1]&descr=$value[2]&place=$value[3]&venue=$value[4]" target="_blank">
      <img border="0" src="http://www.daten-banken.de/infos-ueber-tickets-und-eintrittskarten.gif" width="32" height="16"></a>
      EOF
      put ["DATUM",$values[0],"TITEL",$values[1],"BESCHREIBUNG",$values[2],"ORT",$values[3],"SPIELSTAETTE",$values[4],"PROV",$values[5],"KAT",$values[6],"SHOPID",$values[7]],"topevents"; # achtung $values beginnt bei 0
      

      }
      </perl>
      

      Starte ich das Template werden 611 Datensätze ohne Inhalt angelegt.
      Datum ist auch nicht dabei..

      Meine Datenbank "topevents" hat folgende Felder

      Feld Sortierung Typ Parameter
      1 DATUM Text Datum Eingabe=Tag0.Monat0.Jahr, Ausgabe=Tag.Monatname.Jahr, Zeitpunkt=Nutzereingabe
      2 TITEL Text text
      3 BESCHREIBUNG Text text
      4 ORT Text text
      5 SPIELSTAETTE Text text
      6 PROV Text text
      7 KAT Text text
      8 SHOPID --- text
      9 Karten Text text

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 21.Dezember.2005, 17:13.
    Re: automatischer CSV Import

      nochmal einen linkcheck und contentcheck machen

     Antworten

    Beitrag von Reiner (306 Beiträge) am Mittwoch, 21.Dezember.2005, 20:13. WWW: tickets-und-eintrittskarten.de/
    Re: automatischer CSV Import

      Also wenn ich out "http://blabla.de/logfiles/$now.csv"; eingebe bekomme ich diese Meldung:
      http://blabla.de/logfiles/20051220.csv

      Bei out $content; sind es mit Überschrift 612 Datensätze die so angezeigt werden.

      DATUM;TITEL;BESCHREIBUNG;ORT;SPIELSTÄTTE;PROV;KAT;SHOPID 21.02.06;Madrid - Arsenal;Championsleague;Madrid;Santiago Bernabeu;5;12;195 21.02.06;Barcelona - Chelsea;Championsleague;Barcelona;Nou Camp;5;12;58 31.12.05;Abbafever;Beginn 18:00 Uhr;Hildesheim;Sporthalle Pappelallee Hildesheim;1;1;196 06.08.06;Aida;Beginn 20:00 Uhr;Lübben Spreewald;Schlossinsel Lübben;1;1;197 07.04.06;Best Of Musical 2006 / Frankfurt;Beginn 20:00 Uhr;Frankfurt;Festhalle Frankfurt;1;1;205 08.04.06;Best Of Musical 2006 / Frankfurt;Beginn 15:30 Uhr;Frankfurt;Festhalle Frankfurt;1;1;219 08.04.06;Best Of Musical 2006 / Frankfurt;Beginn 20:00 Uhr;Frankfurt;Festhalle Frankfurt;1;1;254

      Natürlich mehr...

      So wie es ausschaut wird die passent Datei schon abgerufen..

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Donnerstag, 22.Dezember.2005, 10:28.
    Re: automatischer CSV Import

      Der Laufvariablenname im foreach und die Wertzuweisung in den Links stimmt nicht (foreach $ds und die Liste heisst aber @lines)
      wenn du das richtigstellst gehts auch ;-)

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Donnerstag, 22.Dezember.2005, 10:38.
    zu schnell abgeschickt - sorry - Re: automatischer CSV Import

      sorry, da war ich noch nicht fertig mit schreiben...

      Du holst dir die csv-Datensätze zeilenweise in die Liste, um aber die Werte dann auch Feldweise hinzubekommen musst du diese Zeilen jeweils ja nochmal aufdröseln. Hier dann das Split am Semikolon (ist so aus deinem Datendump ersichtlich)
      Also in etwa so:
      ---schnipp
      foreach $ds (@lines){
      my @values = split/\n/,$ds; ## aktuellen datensat in Liste einlesen, damit die Werte über ihren Index ausgelesen werden können
      $Karten=<<EOF;
      <a href="http://topevents24.cc/shop/default.asp?id=3641&id2=&usid=691104901021&cust=&log=login&agid=&key=&mode=shop&shopid=$value[7]&title=$value[1]&descr=$value[2]&place=$value[3]&venue=$value[4]" target="_blank">
      <img border="0" src="http://www.daten-banken.de/infos-ueber-tickets-und-eintrittskarten.gif" width="32" height="16"></a>
      EOF
      put ["DATUM",$values[0],"TITEL",$values[1],"BESCHREIBUNG",$values[2],"ORT",$values[3],"SPIELSTAETTE",$values[4],"PROV",$values[5],"KAT",$values[6],"SHOPID",$values[7]],"topevents"; # achtung $values beginnt bei 0
      }
      
      ---schnapp
      Man könnte auch einen Hash bauen und dann die Werte direkt über den Hash-Key abspeichern (das wieder in ner Schleife und mit ner Kombination von put und mod), dadurch ließe sich das Script gleich als universelles Importscript umbauen, aber das wolltest du ja eigentlich nicht...
      Hoffe, es hilft dir jetzt weiter...

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 22.Dezember.2005, 11:23.
    Re: zu schnell abgeschickt - sorry - Re: automatischer CSV Import

      genau, jemand hat das split geklaut ;)

     Antworten

    Beitrag von Reiner (306 Beiträge) am Donnerstag, 22.Dezember.2005, 12:38. WWW: tickets-und-eintrittskarten.de
    Re: zu schnell abgeschickt - sorry - Re: automatischer CSV Import

      So isses aktuell bei mir drinn:
      <perl>
      $now=datum("-1",'Jahr Monat0 Tag0');
      $now=~s/ //g;
      $content=get "http://blabla.de/logfiles/$now.csv";
      @lines=split/\n/,$content; ## datensätze aufdröseln
       
      

      # wenn erste zeile feldnamen sind, kommentar davor entfernen


      shift @lines;
       
      foreach $ds (@lines){
      my @values = split/\n/,$ds; ## aktuellen datensat in Liste einlesen, damit die Werte über ihren Index ausgelesen werden können
      $Karten=<<EOF;
      <a href="http://topevents24.cc/shop/default.asp?id=3641&id2=&usid=691104901021&cust=&log=login&agid=&key=&mode=shop&shopid=$value[7]&title=$value[1]&descr=$value[2]&place=$value[3]&venue=$value[4]" target="_blank">
      <img border="0" src="http://www.daten-banken.de/infos-ueber-tickets-und-eintrittskarten.gif" width="32" height="16"></a>
      EOF
      put ["DATUM",$values[0],"TITEL",$values[1],"BESCHREIBUNG",$values[2],"ORT",$values[3],"SPIELSTAETTE",$values[4],"PROV",$values[5],"KAT",$values[6],"SHOPID",$values[7]],"topevents"; # achtung $values beginnt bei 0
      }
      </perl>
      
      Leider wird jetzt nur das Feld "DATUM" mit Daten gefüllt.

      Wie ist es eigentlich wenn einmal ein Tag fehlt?
      Bekomme ich dann lauter leere Datensätze? (soviele wie die Fehlermeldung Zeilen hat?)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 22.Dezember.2005, 13:12.
    Re: zu schnell abgeschickt - sorry - Re: automatischer CSV Import

      my @values = split/\n/,$ds;
      
      muß heißen

      my @values = split/;/,$ds;
      

     Antworten

    Beitrag von Reiner (306 Beiträge) am Donnerstag, 22.Dezember.2005, 14:51. WWW: tickets-und-eintrittskarten.de
    Klappt fast

      Vielen Dank :)
      Klappt fast alles.
      Nur der Link wird jetzt nicht mehr in das Feld "Karten" geschrieben.

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 22.Dezember.2005, 15:17.
    Re: Klappt fast

      na des muß jetzt natürlich noch ins put dazu.
      Wie bekommst du bestimmt selbst raus

     Antworten

    Beitrag von Reiner (4 Beiträge) am Donnerstag, 22.Dezember.2005, 15:53. WWW: tickets-und-eintrittskarten.de
    Re: Klappt fast

      Ju Hu :)
      Ich habs..
      Es klappt alles.
      Jetzt kommts aber dicke..
      Was ist wenn einmal kein csv zur Verfügung steht?
      Dann werden leere Datensätze geschrieben.
      Kann man das verhindern?

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 22.Dezember.2005, 16:31.
    Re: Klappt fast

      nach
      $content=get...
      if($content=~/^DATUM;TITEL;BESCHREIBUNG/){
         ##rest des scriptes rein
      }
      

     Antworten

    Beitrag von Reiner (306 Beiträge) am Donnerstag, 22.Dezember.2005, 17:48. WWW: tickets-und-eintrittskarten.de/
    Klappt :) -- und wie Cronjob?

      Hallo Sander,
      Es klappt :)))

      Und wie mach ich das jetzt mit dem Cronjob?

      Das ist dann die letzte Hürde :-)

      Viele Grüße
      Reiner

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 22.Dezember.2005, 17:54.
    Re: Klappt :) -- und wie Cronjob?

      welche uhrzeit? täglich einmal?

     Antworten

    Beitrag von Reiner (306 Beiträge) am Donnerstag, 22.Dezember.2005, 17:59. WWW: tickets-und-eintrittskarten.de/
    Re: Klappt :) -- und wie Cronjob?

      Ja,
      Täglich einmal.
      Dabei spielt die Zeit keine Rolle, da ich die csv von vorgestern hole.
      Kann das ganze über confixx einstellen.

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 22.Dezember.2005, 18:17.
    Re: Klappt :) -- und wie Cronjob?

      confixx: in dem mir zugänglichen nicht

      ansonsten auf der konsole des servers mit ssh einloggen
      dann tippen
      crontab -e
      danach ein
      i
      unten steht install
      dann
      lynx --dump http://pfad zu deinem script >> /dev/null 2>&1
      eingeben, danach
      ESC
      drücken und
      :x

      das wars, der cronjob ist installiert

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 22.Dezember.2005, 18:20.
    Re: Klappt :) -- und wie Cronjob?

      ups, was vergessen
      bei lynx --dump http://pfad zu deinem script >> /dev/null 2>&1
      muß noch die uhrzeit hin

      0 4 * * * lynx --dump http://pfad zu deinem script >> /dev/null 2>&1
      damit um 4 uhr das script läuft.

     Antworten

    Beitrag von Reiner (306 Beiträge) am Donnerstag, 22.Dezember.2005, 18:27. WWW: www.tickets-und-eintrittskarten.de/
    Re: Klappt :) -- und wie Cronjob?

      Auf den Server selbst komm ich nicht-
      Aber wie gesagt per Confixx
      Da steht:
      ----------------------
      Minute
      Stunde
      Tag im Monat
      Monat
      Wochentag
      Befehl
      ----------------------

      Bedeutet das ..

      Minute :30
      Stunde :20
      Tag im Monat :*
      Monat :*
      Wochentag :*
      Befehl :lynx --dump http://pfad zu deinem script

      wenn das Script täglich um 20:30 starten soll?

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 22.Dezember.2005, 23:01.
    Re: Klappt :) -- und wie Cronjob?

      jo, sollte es

     Antworten

    Beitrag von Reiner (306 Beiträge) am Freitag, 23.Dezember.2005, 20:47. WWW: tickets-und-eintrittskarten.de/
    Re: Klappt :) -- und wie Cronjob?

      Hallo Sander,
      Eben ist der Cronjob durchgelaufen.
      Hat prima funktioniert.

      Vielen Dank an allen die mir geholfen haben.
      Ein schönes Weihnachtsfest und viele Geschenke..
      Ich bin ja schon beschert worden. ;)

      Grüße
      Reiner

     Antworten


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