PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

22-09-2003, 16:42
|
php-mysql-coder
Newbie
|
|
Registriert seit: Sep 2003
Ort: Germany / NRW
Beiträge: 19
|
|
DB Auslesen und Array zurückschreiben
Hallo,
folgendes Problem.
Ich habe eine Datenbank ausgelesen (ODBC, Oracle) und die Werte in eine Variable geschrieben.
Wie kann ich diese Daten jetzt in eine MySQL Datenbank übertragen.
Es geht wirklich nur um die Daten, die Felder und DB Namen sind in beiden Datenbanken (Oracle, MySQL) gleich. Die MySQL DB.Tbl ist leer.
Hier ein Stück Code:
#Auslesen der ODBC/Oracle Daten
$odbc_daten = @odbc_exec($odbc_conn, "SELECT * FROM $odbc_table");
Die Daten in der Variable möchte ich nun in eine MySQL DB schreiben, natürlich passend zu den Feld/Spaltennamen.
__________________
MfG
PHP MySQL Coder
|

22-09-2003, 16:46
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
was gibt dir denn
PHP-Code:
print_r(odbc_fetch_array($odbc_daten));
aus?
stehen da die spaltennamen als arrayindizes zur verfügung?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

22-09-2003, 17:15
|
php-mysql-coder
Newbie
|
|
Registriert seit: Sep 2003
Ort: Germany / NRW
Beiträge: 19
|
|
Er zeigt das:
Array ( [AUSLIEFERUNGSDATUM] => [BAUREIHE] => [EK_WERT] => 0 [ERSTZULASSUNG] => 1996-02-08 00:00:00 [FABRIKAT] => BMW [FAHRZEUGART] => Neuwagen [FAHRZEUGNR] => 13981 [FARBE] => [POLSTER] => [FGSTNR] => EX73359 [FILIALE_NAME1] => [FILIALE_NAME2] => [GETRIEBE] => [KAROSSERIE] => [KRAFTSTOFF] => [KM_STAND] => 35671 [KUNDENNR_DMS] => 22440 [KUNDENNR] => 8919 [LETZTER_WERKSTATTBESUCH] => 1998-08-19 00:00:00 [MODELLREIHE] => [MOTOR_KONZEPT] => Benzineinspritzung [MOTOR_SERIE] => 6 Zylinder, Reihe, 4 Ventiler [NUTZUNG] => Privat [SCHAETZWERT] => 0 [TYP] => CD91 [VERGLEICHSKLASSE] => VK-1 [VERKAUFSDATUM] => 1996-02-08 00:00:00 [VK_PREIS] => 0 [VOR_ERSATZDATUM] => [VOR_LAUFLEISTUNG] => [ZAHLUNGSWEISE] => [FILIAL_NR] => )
__________________
MfG
PHP MySQL Coder
|

22-09-2003, 17:18
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
gut, dann noch als kleinen denkanstoß:
PHP-Code:
$odbc_daten = @odbc_exec($odbc_conn, "SELECT * FROM $odbc_table");
while ($row=odbc_fetch_array($odbc_daten))
{
foreach ($row as $key => $value)
echo 'Spalte: '.$key.'<br />Wert: '.$value.'<p />';
echo '<hr />';
}
hast du jetzt alles?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

22-09-2003, 17:23
|
php-mysql-coder
Newbie
|
|
Registriert seit: Sep 2003
Ort: Germany / NRW
Beiträge: 19
|
|
Also...
muss ich nur noch die Variablen $key und $value an mysql_query übergeben.
mysql_query("INSERT INTO $mysql_table ($key) VALUES ($value)");
ist das so richtig.
__________________
MfG
PHP MySQL Coder
|

22-09-2003, 17:24
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
ja, aber so setzt du bloß eine spalte
du musst dir erst alle spalten samt ihrer werte holen mit foreach und daraus dann dein insert basteln
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

22-09-2003, 17:30
|
php-mysql-coder
Newbie
|
|
Registriert seit: Sep 2003
Ort: Germany / NRW
Beiträge: 19
|
|
Ich könnte...
jeden Wert einzeln auslesen und in eine Variable Speichern. Dann müsste ich 32 Variablen anlegen. Das ist zu viel Arbeit, da ich hunderte von Tabellen habe. Dann müsste ich jede Abfrage anpassen.
Kann man das Automatisieren, so das die Anzahl der Spalten egal ist.
__________________
MfG
PHP MySQL Coder
|

22-09-2003, 17:34
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
geht auch automatisiert
PHP-Code:
foreach ($row as $key => $value)
{
$columns[]=$key;
$values[]=$value;
}
echo 'INSERT INTO tabelle ('.implode(',',$columns).') VALUES ('.implode(',',$values).')';
das innerhalb der while-schleife
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

22-09-2003, 17:49
|
php-mysql-coder
Newbie
|
|
Registriert seit: Sep 2003
Ort: Germany / NRW
Beiträge: 19
|
|
Er zeigt alles....
korrekt an (Soweit ich das beurteilen kann, muss es halt noch ausprobieren). Danke
Wenn du zeit hast kannst du mir die Funktionsweise nur mal kurz erläutern. So ganz habe ich das noch nicht verstanden.
Vielen Dank nochmal
__________________
MfG
PHP MySQL Coder
|

22-09-2003, 18:13
|
php-mysql-coder
Newbie
|
|
Registriert seit: Sep 2003
Ort: Germany / NRW
Beiträge: 19
|
|
Noch ein Problem....
Im Text des Datensatzes der übertragen werden soll, befinden sich Kommas.
Im Datensatz "MOTOR_SERIE" befindet sich folgender String:
"6 Zylinder, Reihe, 4 Ventiler".
Hier wird ja nach Komma getrennt also habe ich im Value Bereich 2 Kommatrennungen. Wie bekomme ich das jetzt hin.
"INSERT INTO procar_sales_import ('.implode(',',$columns).') VALUES ('.implode(',',$values).')"
Ich verzweifle langsam.
__________________
MfG
PHP MySQL Coder
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
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.
|
|
|
|
PHP News
|