phpbar.de logo

Mailinglisten-Archive

AW: [php] merfach Select - Befehl

AW: [php] merfach Select - Befehl

Wolfgang Hauck php_(at)_phpcenter.de
Fri, 10 May 2002 17:29:50 +0200


>Jetzt habe ich aber noch ein Problem.
>Manche Zuchter schicken mir eine *.csv Datei, mit den entsprechenden
>Daten. Also die Nummern der Eltern und so weiter in einem Datensatz.

>Wie soll ich denn da die ID?s der Eltern einfugen ?

Hi Danny,

Das ist auch kein Problem. Da, wie ich annehme, nur du die Daten eintraegst 
musst du diese Tabelle in zwei Schritten importieren. Lade zunaechst die 
Daten in eine seperate Tabelle mit der Struktur deiner csv - Datei. 
Anschliessend uebertraegst du die Daten in deine Orginaltabelle und fuellst 
die Felder ID_v und ID_m mit Null. Jetzt hat jeder Hund eine ID nur die 
Verknuepfungen zu den Eltern fehlen noch. Jetzt kannst du ueber die 
Orginaltabelle und die csv-Referenztabelle diese Verknuepfungen erstellen 
(das musst du ja sowieso programmieren da jetzt in deiner Orginaltabelle ja 
diese ID's auch fehlen). Aber aufgepasst, die Verknuepfungen koennen in 
zwei Richtungen laufen:

1. Die Eltern (bzw. - Teil) sind bereits in der Orginaltabelle.
2. Die Eltern (bzw. - Teil) werden neu dazugeliefert.

und 3.

Die Eltern sind in beiden Tabellen (sollte zwar nicht vorkommen, ist aber 
nicht ausgeschlossen).

zu 3.

Schmeisse !! vor !! dem uebertragen der Tabelle die bereits eingetragenen 
Hunde raus.
Select name, verein, bznr from df_ahnen as a left join reftab as b on 
a.verein = b.verein and a.bznr = b.bznr
Hier bekommst du alle doppelten Hunde.

zu 1.
Diese Routine benoetigst du sowieso, da ja Eltern auch direkt eingetragen 
werden koennen und die Verknuepfung zu den Kindern ja da noch fehlt.

zu 2.
hier musst du auch nur die Eltern suchen, die weiteren Verknuepfungen 
ergeben sich von selbst (Diese function brauchst du auch bei der 
Eingabepruefung, da hast du ja auch noch keine ID fuer die Eltern).

Zum Schluss leerst du (nicht loeschen, du brauchst diese ja das naechste 
Mal wieder) die csv-Referenztabelle.

MFG Wolfgang

P.S. Bei grossen Tabellen kann das natuelich etwas laenger dauern, da 
solltest du das Script nicht unbedingt uebers Web aufrufen (Timeout - 
Gefahr). Ich mach sowas uebrigens mit perl, aber das ist Ansichtssache. 
Wenn du Probleme mit der Ausfuehrung haben solltest melde dich am Montag 
wieder, ich geh jetzt naehmlich ins Wochenende (Der Biergarten ruft)!

MFG Wolfgang


php::bar PHP Wiki   -   Listenarchive