PHP & MySQL
Marc
- php
Guten Morgen Forum
Wie kann man die Daten von der einen MySQL-Tabelle in eine andere transferieren (mit Einschränkungen), wenn die Spaltenbezeichnungen, sowie die Datensatznummern der beiden Tabellen verschieden sind. Ich habe Mühe mit dem prinzipiellen Vorgehen. Besten Dank für eure Hilfe!
Grüsse, Marc
Hallo,
die eine Tabelle liest du komplett aus. sortierung eigentlich egal...
auf das ergebnis machst du ein mysql_fetch_array.
innerhalb einer schleife holst du nun die einzelnen datensätze raus und übergibst sie an ein sql-statement welches in die andere tabelle einträgt.
die spalten kannst du ja nun korrekt eingeben und die werte hast du als array-inhalte vorliegen...
Odium
Hallo Odium
auf das ergebnis machst du ein mysql_fetch_array.
Soweit hab ich's
innerhalb einer schleife holst du nun die einzelnen datensätze raus und übergibst sie an ein sql-statement welches in die andere tabelle einträgt.
du denkst da wahrscheinlich an eine foreach-schleife, ja?
Genau hiermit hab ich so meine probleme: wie sieht z.B. das statement innerhalb dieser schleife aus? Sie wird ja mehrmals durchlaufen (pro spalte einmal), und bei jedem durchlaufen muss er in eine andere spalte den momentan ausgelesenen wert eintragen. kannst du mir ein beispiel machen?
Vielen Dank!
Marc
Hallo,
ich dachte da eher an eine While-Schleife
while ($daten = mysql_fetch_array($result))
{
//jetzt das insert
$sql1 = "INSERT INTO tabelle_hinein(vorname,name) VALUES ('$daten["feld1_aus_tablle_heraus"],'$daten["feld2_aus_tablle_heraus"]')";
// und ausführen
$result1 = mysql_query($sql1,$db);
}
//$result ist das ergebnis des sql-select auf die basis-tabelle...
aber der andere Weg von Kerstin klingt auch gut...ist auf jedenfall schneller zu schreiben, aber du kannst einzelne feldinhalte nicht so gut überprüfen...
Odium
Hallo Marc,
INSERT INTO tabelle2 (spaltea, spalteb, spaltec) SELECT spalte1, spalte2, spalte3 FROM tabelle1
viele Grüsse
Kerstin
Hallo Kerstin
INSERT INTO tabelle2 (spaltea, spalteb, spaltec) SELECT spalte1, spalte2, spalte3 FROM tabelle1
Vielen Dank für dein Tip, das klingt schon mal ganz logisch. wenn ich den select-teil noch mit einer where-klausel ergänze und dabei mehrere datensätze betroffen sind, muss ich das ganze noch in irgend eine schleife verpacken oder wie geht das system vor?
Danke und viele grüsse, Marc
Hallo Marc,
es reicht aus, wenn Du die entsprechende WHERE-Klausel formulierst. Mit Schleifen oder ähnlichem mußt Du Dich nicht mehr beschäftigen. Das Statement läuft komplett auf der DB. Du solltest nur noch schauen, ob das Statement fehlerfrei abläuft.
Gruß Frank