Hi,
weiss garnicht, ob ich das jetzt ins Datenbank- oder ins PHP-Forum schreiben soll, aber habe mich jetzt für hier entschieden.
Meine Aufgabenstellung sieht so aus, dass ich aus Textdateien Datensätze auslesen und in einer Datenbank ablegen möchte.
Die Namen der Textdateien sollen dann automatisch die Namen der jeweiligen Tabellen sein.
Mein erstes Problem ist, dass ich einer vorher erstellten Datenbank einfach keine Tabelle hinzufügen kann.
Das Erstellen einer Tabelle funktioniert nur, wenn die Datenbank gerade unmittelbar erstellt worden ist, also nicht bei einer schon vorhandenen.
Mein Code zum Erstellen der Tabelle sieht so aus:
Mein zweites Problem ist an der Umsetzung der Datensatzfüllung.
Die Datensätze der unterschiedl. Dateien haben nämlich nicht alle die selbe Anzahl. Also müsste ich das Erstellen der Tabellen dynamisch realisieren.
Das Hinzufügen der einzelnen Spalten dürfte wohl mit ADD COLUMN oder so in einer Schleife hinzubekommen sein. Also Anzahlunabhängig.
ABER: Wie fülle ich das dynamisch ?
Mit Explode kann ich ja bequem die Datensätze splitten aber wie sieht ein dynamischer Insert-Befehl aus ??
Ich muss bei einem Insert-Befehl doch immer die komplette Anzahl von Werten für die Columns angeben oder nicht ?
Wie setzt man das in einer Schleife oder so um ??
Poste mal hier jetzt den "kompletten" Quellcode:
Hoffe, dass ich mich verständlich ausdrücken konnte und ihr mir helfen könnt.
Danke schon mal im Voraus
Overlord
weiss garnicht, ob ich das jetzt ins Datenbank- oder ins PHP-Forum schreiben soll, aber habe mich jetzt für hier entschieden.
Meine Aufgabenstellung sieht so aus, dass ich aus Textdateien Datensätze auslesen und in einer Datenbank ablegen möchte.
Die Namen der Textdateien sollen dann automatisch die Namen der jeweiligen Tabellen sein.
Mein erstes Problem ist, dass ich einer vorher erstellten Datenbank einfach keine Tabelle hinzufügen kann.
Das Erstellen einer Tabelle funktioniert nur, wenn die Datenbank gerade unmittelbar erstellt worden ist, also nicht bei einer schon vorhandenen.
Mein Code zum Erstellen der Tabelle sieht so aus:
Code:
$server = "localhost"; $user = "root"; $pass = ""; $dbName = "fh"; $conn = @mysql_connect($server, $user, $pass); @mysql_select_db($dbName, $conn); $query = "CREATE TABLE `test` ( `key` VARCHAR( 25 ) NOT NULL , PRIMARY KEY ( `key` ) )"; $result = mysql_query($query);
Die Datensätze der unterschiedl. Dateien haben nämlich nicht alle die selbe Anzahl. Also müsste ich das Erstellen der Tabellen dynamisch realisieren.
Das Hinzufügen der einzelnen Spalten dürfte wohl mit ADD COLUMN oder so in einer Schleife hinzubekommen sein. Also Anzahlunabhängig.
ABER: Wie fülle ich das dynamisch ?
Mit Explode kann ich ja bequem die Datensätze splitten aber wie sieht ein dynamischer Insert-Befehl aus ??
Ich muss bei einem Insert-Befehl doch immer die komplette Anzahl von Werten für die Columns angeben oder nicht ?
Wie setzt man das in einer Schleife oder so um ??
Poste mal hier jetzt den "kompletten" Quellcode:
Code:
<?php //error_reporting(0); // database $server = "localhost"; $user = "root"; $pass = ""; $filename = "file123"; $dbName = "TestDatenbank"; // create database, if not already exists // establish and test connection $conn = @mysql_connect($server, $user, $pass); if ($conn!=TRUE) { echo "Verbindungsfehler: ".mysql_error()." !! Versuchen Sie es zu einem späteren Zeitpunkt nochmals."; die; } // check if database already exists. if not: create database $exist = @mysql_select_db($dbName, $conn); if($exist!=TRUE){ $query = "CREATE DATABASE `$dbName`"; //echo mysql_error(); $result = mysql_query($query); if ($result!=TRUE) { echo "Fehler beim Erstellen der Datenbank. Möglicherweise ist der Server nicht gestartet."; die; }} // create table $conn = @mysql_connect($server, $user, $pass); @mysql_select_db($dbName, $conn); $query = "CREATE TABLE `test` ( `key` VARCHAR( 25 ) NOT NULL , `col1` INT( 3 ) NOT NULL , `col2` INT( 3 ) NOT NULL , `col3` INT( 3 ) NOT NULL , `col4` VARCHAR( 15 ) NOT NULL , PRIMARY KEY ( `key` ) ) TYPE = MYISAM ;"; $result = mysql_query($query); ?>
Danke schon mal im Voraus
Overlord
Kommentar