CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos

|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |

03.02.2011, 22:39:01
|
Anfänger
|
|
Registriert seit: Feb 2011
Alter: 57
Beiträge: 2
|
|
Mysql tabelle füllen
Guten Abend
Aufgabe: Unser ERP System arbeitet mit einer LNX ODBC Datenbank(???). Diese kann nicht verändert werden. Daher planen wir gewisse Tabellen in eine mysql DB zu exportieren.
Die Daten im ERP System verändern sich, sodass ein autom. abgleich durchgeführt werden sollte. Da die manuelle Bearbeitung (Excel->cvs phpmyadmin -> import) zu aufwendig ist bevorzugen wir eine eine Möglichkeit, die dies autom. per script durchführt.
Meine Frage: Welchen Ansatz sollten wir verfolgen. Wie würdet Ihr die Sache angehen?
Besten dank für Euren Kommentar
|

04.02.2011, 07:28:27
|
Junior Member
|
|
Registriert seit: Aug 2010
Alter: 15
Beiträge: 395
|
|
AW: Mysql tabelle füllen
PHP kann auch direkt via ODBC Daten aus dieser Datenbank lesen, sofern ein entsprechender Treiber existiert. Diese PHP-Skript könnte dann die Daten direkt in MySQL speichern und abgleichen.
Weiterhin wäre da noch der Bulk Loader von MySQL (extrem schnell) mit vielen Einstell- und Kontrollmöglichkeiten.
http://dev.mysql.com/doc/refman/5.1/de/load-data.html
Trotzdem riecht das Ganze nach viel Aufwand und Problemen, um ständig die Daten abzugleichen. Das Beste ist nach wie vor, alles Daten in einer Datenbank zu halten.
Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
|

08.02.2011, 16:40:55
|
Anfänger
|
|
Registriert seit: Feb 2011
Alter: 57
Beiträge: 2
|
|
AW: Mysql tabelle füllen
Erst einmal Danke für die Meinung,
alles was leicht aussieht muß es nachher nicht sein. Wir haben uns für eine manuelle Bereitstellung entschieden. Das funktioniert auch, wenn nicht das Wörtchen aber wäre. Aber in unserer Datenbank gibt es ein Feld, dass mehrere Infos enthält. Natürlich benötigen wir aus diesem Feld den mittleren Teil z.B ER 98501 Buchungstextblabal. Nun wollten wir bei der ODBC Abfrage diese Feld splitten. Da die Inhalte immer mit einem Leerzeichen getrennt sind, dachen wir wir könnten das mit CHARINDEX machen. Jedoch fehlt uns hier das Grundwissen. Vielleicht fällt jemandem spontan etwas ein.
Danke für Eure Bemühungen
SELECT anschrift.anschriftennummer, anschrift.name1, anschrift.name2, anschrift.strasse, anschrift.plz, anschrift.ort, fi_buchungen.nr_buch, fi_buchungen.kto_buch, fi_buchungen.betrag_buch, fi_buchungen.beleg_datum_buch, fi_buchungen.text_buch, fi_buchungen.rech_nr_buch
FROM lnx.anschrift anschrift, lnx.fi_buchungen fi_buchungen
WHERE anschrift.anschriftennummer = fi_buchungen.kto_buch AND ((anschrift.anschriftennummer> 69999 ))
SELECT RTRIM(LTRIM(SUBSTRING(fi_buchungen.text_buch,0, CHARINDEX(' ',fi_buchungen.text_buch)-1))) as barcode
|

08.02.2011, 19:48:50
|
Junior Member
|
|
Registriert seit: Aug 2010
Alter: 15
Beiträge: 395
|
|
AW: Mysql tabelle füllen
CHARINDEX ist ein MS-SQL eigener Befehl, den kennt MySQL nicht.
Eine mögliche Lösung könnte so aussehen, wobei der REXEXP bestimmt eleganter geht.
Code:
CREATE TABLE test_split (
id INT NOT NULL,
buchtext VARCHAR(100),
PRIMARY KEY (id)
);
INSERT INTO test_split VALUES
( 1 , 'ER 98501 Buchungstextblaba' ),
( 2 , 'ER 98501' ),
( 3 , 'ER' ),
( 4 , NULL );
SELECT id,
buchtext,
SUBSTRING_INDEX(buchtext,' ',1) AS teil1,
REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(buchtext,' ',2)),' ',1)) AS teil2,
REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(buchtext,' ',3)),' ',1)) AS teil3
FROM test_split
WHERE buchtext REGEXP '[a-zA-Z0-9]+[space]';
+----+----------------------------+-------+-------+-------------------+
| id | buchtext | teil1 | teil2 | teil3 |
+----+----------------------------+-------+-------+-------------------+
| 1 | ER 98501 Buchungstextblaba | ER | 98501 | Buchungstextblaba |
+----+----------------------------+-------+-------+-------------------+
1 row in set (0.00 sec)
mysql>
Der SQL liefert nur die Daten, deren Buchungstext aus drei Teilen (mit Blank getrennt) besteht. Wie gesagt, die WHERE Klausel mit dem REGEXP stimmt vermutlich nicht richtig. Also testen...!
Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 14:59:41 Uhr.
|