Tabellen einfügen, mit Datensätzen füllen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Tabellen einfügen, mit Datensätzen füllen

    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:


    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);
    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:

    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&auml;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);
    
    ?>
    Hoffe, dass ich mich verständlich ausdrücken konnte und ihr mir helfen könnt.

    Danke schon mal im Voraus

    Overlord
    Zuletzt geändert von BjRay; 18.08.2005, 23:30.

  • #2
    Re: Tabellen einfügen, mit Datensätzen füllen

    1. PHP-Tags benutzen
    2. Code umbrechen, kein horizontaler Scrollbalken auf 1024!
    3. noch ein paar mehr @s in deinem Skript, und ich schmeiß dich aus dem Fenster >___>

    Abgesehen davon...nein, ich verstehe nicht was du willst, ich hab den Post vor 30 Minuten schon gelesen und jetzt nochmal und ich versteh ihn auch trotz deiner Erweiterung des Quellcodes nicht....vielleicht würde es helfen mal ein paar Datensätze aus ein paar Dateien zu posten!


    Original geschrieben von BjRay
    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.
    so ein Müll....
    PHP-Code:
    mysql_query('hier die tabelle kreieren') or die(mysql_error()); 
    schreiben und Ausgabe anschauen, phpmyadmin macht dir ja auch später noch Tabellen rein.....

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Ich weiss nicht, warum Du diesen Ton anschlägst, wirst aber wohl Deine guten Gründe dafür haben.
      Jedenfalls war mein Fehler, dass ich das MySQL Control Center verwendet habe und das dort halt der Fehler auftrat, dass ich zu einer schon vorhandenen DB keine neuen Tables hinzufügen kann (was weiss ich warum).
      Jedenfalls funktioniert es jetzt mit dem phpMyAdmin, so dass ich weitermachen kann. In dem Fall hast Du mir also geholfen.

      Danke dafür.

      Kommentar

      Lädt...
      X