php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.11.2008, 09:57  
Neuer Benutzer
 
Benutzerbild von lmueller
 
Registriert seit: 19.11.2008
Beiträge: 5
lmueller befindet sich auf einem aufstrebenden Ast
Standard load data infile + str_to_date

Hallo zusammen,

ich bin neu hier und auch relativ neu bei PHP - habt also bitte Nachsicht...

Ich habe ein kleines Skript, mit dem ich Daten aus einem Logfile in eine Datenbank ziehe und diese Daten dann in unserem Intranet bereitstelle.
Das Logfile liefert mir aber das Datum und die Uhrzeit im 'falschen' Format, naemlich '25.11.2008 09:47'. Gibt es eine Moeglichkeit das on-the-fly ins MySQL konforme DATETIME Format 2008-11-25 09:47 zu wandeln?
Ich benoetige das um die Suche auf einen bestimmten Zeitraum eingrenzen zu koennen.

Danke schonmal fuer Hinweise.

Lars
__________________
Never argue with an idiot, they drag you down to their level and beat you with experience.
lmueller ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.11.2008, 10:13  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

PHP-Code:
$dat "25.11.2008 09:47";
echo 
date("Y-m-d H:i:s",strtotime($dat)); 
sowas?
cycap ist offline  
Alt 25.11.2008, 14:06  
Neuer Benutzer
 
Benutzerbild von lmueller
 
Registriert seit: 19.11.2008
Beiträge: 5
lmueller befindet sich auf einem aufstrebenden Ast
Standard

Danke, grunsaetzlich ja aber wie kriege ich das hierin unter:
PHP-Code:
// zuerst ziehen wir uns das CSV file in die Datenbank
mysql_select_db("$db") or die("Auswahl der Datenbank fehlgeschlagen");
mysql_query("LOAD DATA INFILE '$importfile' REPLACE INTO TABLE pakete 
                            FIELDS TERMINATED BY ';' 
                            LINES TERMINATED BY '\n' 
                            IGNORE 2 LINES 
                            (datum, 
                            belegnum, 
                            paketnum, 
                            name, 
                            strasse, 
                            plz, 
                            ort, 
                            gewicht, 
                            anzahl, 
                            status)"
); 
__________________
Never argue with an idiot, they drag you down to their level and beat you with experience.
lmueller ist offline  
Alt 25.11.2008, 14:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich sehe zwei Möglichkeiten:

1. Das CSV vor dem Import verändern
2. Zum Import ein temporäres Datumsfeld anlegen und aus diesem durch ein nachträgliches Update das reguläre Datumformat erzeugen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 25.11.2008, 14:46  
Neuer Benutzer
 
Benutzerbild von lmueller
 
Registriert seit: 19.11.2008
Beiträge: 5
lmueller befindet sich auf einem aufstrebenden Ast
Standard

1. faellt aus: Die Daten kommen aus einem Versandsystem, das sich nicht customizen laesst.

2. war auch mein Gedanke ... leider reichen meine PHP Kenntnisse noch nicht so weit - obwohl's ja einfach ist. Zeile fuer Zeile die Spalte 'datum' auszulesen und nach 'real_datum' zu schreiben mittels str_to_date. Soweit die Theorie.
__________________
Never argue with an idiot, they drag you down to their level and beat you with experience.
lmueller ist offline  
Alt 25.11.2008, 14:47  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
leider reichen meine PHP Kenntnisse noch nicht so weit - obwohl's ja einfach ist. Zeile fuer Zeile die Spalte 'datum' auszulesen und nach 'real_datum' zu schreiben mittels str_to_date. Soweit die Theorie.

http://www.php.de/php-einsteiger/489...rundlagen.html
cycap ist offline  
Alt 25.11.2008, 15:17  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
1. faellt aus: Die Daten kommen aus einem Versandsystem, das sich nicht customizen laesst.
Das kann man genauso über PHP machen und die Datei bspw. {oldname}.import nennen.

Zitat:
2. war auch mein Gedanke ... leider reichen meine PHP Kenntnisse noch nicht so weit - obwohl's ja einfach ist. Zeile fuer Zeile die Spalte 'datum' auszulesen und nach 'real_datum' zu schreiben mittels str_to_date. Soweit die Theorie.
Das geht viel einfacher über SQL

LOAD DATA INFILE würde statt datum bspw. datum_temp (ein Characterfeld) verwenden.
Danach würde man eine zweite Query absetzen, die ein Table-UPDATE machen und dabei über SQL-Stringfunktionen (LEFT, RIGHT , SUBSTR , POSITION ...) den alten auf den neuen Wert überträgt.


Ich sehe gerade, das ist auch direkt möglich. Bsp. aus dem Handbuch:

Zitat:
Code:
LOAD DATA INFILE 'file.txt'
  INTO TABLE t1
  (column1, column2)
  SET column3 = CURRENT_TIMESTAMP;
You can also discard an input value by assigning it to a user variable and not assigning the variable to a table column:

Code:
LOAD DATA INFILE 'file.txt'
  INTO TABLE t1
  (column1, @dummy, column2, @dummy, column3);
@dummy und SET datum = CONCAT(LEFT(...)) wären also das Mittel der Wahl.

Perfektes Beispiel:

Zitat:
LOAD DATA INFILE 'file.txt'
INTO TABLE t1
(column1, @var1)
SET column2 = @var1/100;
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (25.11.2008 um 15:22 Uhr).
nikosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Phpmailer - data not accepted / SMTP Fehler: Daten werden nicht akzeptiert Soese PHP Tipps 2008 4 16.11.2008 13:05
Probleme mit "load data infile" nach Serverupgrade knödelkopf Datenbanken 4 16.06.2008 16:12
[Erledigt] LOAD DATA Datenbanken 9 04.12.2005 21:15
CSV datei mit load data local infile Datenbanken 8 01.07.2005 11:23
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
LOAD DATA INFILE vom externen Ort kanti Datenbanken 0 30.08.2004 14:52
Mysql local infile PHP Tipps 2004 2 13.07.2004 10:22
[Erledigt] load data infile - hört bei 127 einfach zu zählen auf? Datenbanken 3 01.07.2004 23:37
load data local Datenbanken 4 23.06.2004 14:28
LOAD DATA INFILE - wo ist der Fehler? Datenbanken 3 14.06.2004 20:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
load data infile beispiel, str_to_date, php str_to_date, str_to_date php, load data infile beispiele, beispiel load data infile, php str_to_date alternative, mysql str_to_date, load data infile str_to_date, mysql load data infile str_to_date, load data infile datum, str_to_date mysql, load dat infile datumsangaben, mysql_query load data, str_to_date(), load data infile date, sql load data infile set, \load data infile\ \str_to_date\, mysql load data infile set str_to_date, str_to_date load data infile mysql

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:28 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum