PHP Tabelle ergänzen durch ein neue Datenfeld.

Von: , 18.03.2010 00:19 Uhr

Ich habe in einer Anwendung eine PHP-Tabelle (A) mit aktiven Daten, die nicht verloren gehen dürfen. Die Datei hat ein Schlüssel-Feld (A1) und ein normales Datenfeld (A2 = es beinhaltet ein Datum). Also eine sehr einfache Tabelle (Datei). Nun will ich ein weiteres Datenfeld (A3) hinzufügen. Wie mache ich das, dass auf keinen Fall die bestehenden Daten in der Tabelle verloren gehen. (1) Kann ich einfach das neue Datenfeld (A3) definieren und fertig ODER (2) muss ich die Tabelle A mit den Felder A1,A2 kopieren nach Tabelle B mit den Feldern B1,B2,B3 (wobei B3 sich dann leer aufbaut).

14 Antworten zu dieser Frage

  1. Antwort von nach 14 Minuten 0 hilfreich
    Re: PHP Tabelle ergänzen durch ein neue Datenfeld.

    Ich rede mich mal damit raus, dass es schon sehr spät ist, aber könntest Du Dein Problem vielleicht ein bisschen weniger kryptisch darstellen.

    Gruß,
    Dirk

    • Antwort von nach 9 Stunden 0 hilfreich
      Re^2: PHP Tabelle ergänzen durch ein neue Datenfeld.

      So wird die Tabelle im Moment angesprochen:
      --------------------------------------------
      $query = "CREATE TABLE `$times_table_name` (".
      "`plan_nr` int(10) unsigned NOT NULL default '0',".
      "`last_mod` int(10) unsigned NOT NULL default '0'".
      ") TYPE=MyISAM;";
      if (!mysql_query($query)) die ("$prog_nm.php: Tabelle $times_table_name konnte nicht angelegt werden. Line: ".__LINE__);
      header ("Location: $PHP_SELF"); exit;
      -------------------------------------------
      So soll sie in Zukunft aussehen (zusätzlich owner_name):
      -------------------------------------------
      $query = "CREATE TABLE `$times_table_name` (".
      "`plan_nr` int(10) unsigned NOT NULL default '0',".
      "`last_mod` int(10) unsigned NOT NULL default '0'".
      "`owner_name` varchar(15).
      ") TYPE=MyISAM;";
      if (!mysql_query($query)) die ("$prog_nm.php: Tabelle $times_table_name konnte nicht angelegt werden. Line: ".__LINE__);
      header ("Location: $PHP_SELF"); exit;
      -----------------------------------------------
      Gruss - Juergen

  2. Antwort von nach 14 Minuten 0 hilfreich
    Re: PHP Tabelle ergänzen durch ein neue Datenfeld.

    Ich rede mich mal damit raus, dass es schon sehr spät ist, aber könntest Du Dein Problem vielleicht ein bisschen weniger kryptisch darstellen.

    Gruß,
    Dirk

  3. Antwort von nach 10 Stunden 0 hilfreich
    Re: PHP Tabelle ergänzen durch ein neue Datenfeld.

    Hallo Juergen,

    ich "arbeite" viel mit PHP und kann das was ich brauche ganz gut. Ich habe allerdings noch nie etwas von einer PHP-Tabelle gehört.
    Entweder ich habe da was verpasst oder ich verstehe deine Problembeschreibung leider nicht ganz.
    Ich kann mit PHP html-Tabellen erzeugen (echo "<table> ...</table>"): da wird das Datenspeichern aber kompliziert. Daten würde ich in einer (z.B. mysql-)Datenbank speichern, auf deren Tabellen ich mit PHP zugreifen kann (typisch: mysql_query("INSERT
    INTO wohin VALUES('$memid','$ik','')");).
    Falls du eine dieser beiden Möglichkeiten meinst, kannst du gerne nochmal nachfragen. Falls nicht, weißt du viel mehr als ich.

    Grüße

    Manuel

    • Antwort von nach 18 Stunden 0 hilfreich
      Re^2: PHP Tabelle ergänzen durch ein neue Datenfeld.

      Hallo Manuel.
      Sorry, ich habe mich sehr unwissenschaftlich ausgedrückt. Möglicherweise ist meine Frage keine PHP Frage sondern eine MYSQL Frage.
      So wird die Tabelle im Moment angesprochen:
      --------------------------------------------
      $query = "CREATE TABLE `$times_table_name` (".
      "`plan_nr` int(10) unsigned NOT NULL default '0',".
      "`last_mod` int(10) unsigned NOT NULL default '0'".
      ") TYPE=MyISAM;";
      if (!mysql_query($query)) die ("$prog_nm.php: Tabelle $times_table_name konnte nicht angelegt werden. Line: ".__LINE__);
      header ("Location: $PHP_SELF"); exit;
      -------------------------------------------
      So soll sie in Zukunft aussehen (zusätzlich owner_name):
      -------------------------------------------
      $query = "CREATE TABLE `$times_table_name` (".
      "`plan_nr` int(10) unsigned NOT NULL default '0',".
      "`last_mod` int(10) unsigned NOT NULL default '0'".
      "`owner_name` varchar(15).
      ") TYPE=MyISAM;";
      if (!mysql_query($query)) die ("$prog_nm.php: Tabelle $times_table_name konnte nicht angelegt werden. Line: ".__LINE__);
      header ("Location: $PHP_SELF"); exit;
      -----------------------------------------------
      Mein Problem ist: Was passiert mit einer „lebenden“ Tabelle, wenn ich ein Feld hinzufüge. Sind dann alle alten Daten weg oder geht das problemlos. ODER muss ich die Tabelle „umkopieren“ von alter Tabelle auf neue Tabelle.
      Gruss – Juergen

      • Antwort von nach einem Tag 0 hilfreich
        Re^3: PHP Tabelle ergänzen durch ein neue Datenfeld.

        Das Anlegen einer neuen Tabelle mit dem gleichen Namen mit "CREATE TABLE" wird die Inhalte bestimmt überschreiben.

        Es existiert der Befehl "Alter" (http://dev.mysql.com/doc/refman/5.4/en/mysql-indexes...) um Tabellen zu verändern, ohne Daten zu löschen:

        ALTER TABLE $times_table_name ADD owner_name varchar(15) DEFAULT 'default_owner' NOT NULL

        Das legt in der bestehenden Tabellen eine neue Spalte an. Ich hoffe das ist das was du wünschst. Das wäre die erste von dir beschriebene Methode.

        Generell kann ich kann ich empfehlen für einmalige Veränderungen auf scripte wie myAdmin (http://de.wikipedia.org/wiki/PhpMyAdmin) zu verwenden und lieber einmal zu viel als zu wenig zu sichern (wie gesagt, ich bin absoluter Laie).

        Falls ich neben deinem Problem liege oder du noch Fragen hast, melde dich ruhig.

        • Antwort von nach 2 Tagen 0 hilfreich
          Re^4: PHP Tabelle ergänzen durch ein neue Datenfeld.

          Danke Manu.
          Das hilf mir weiter.
          Gruss - Juergen.

  4. Antwort von nach 17 Stunden 0 hilfreich
    Re: PHP Tabelle ergänzen durch ein neue Datenfeld.

    Nun grundsätzlich kann man die Daten schon copieren. Aber das würde ich nur machen, wenn es sich um wenige Zeilen habdelt. Ich denke es ist hier sinnvoll mal darüber nachzudenken, ob man die Daten nicht in eine Datenbank mysql schreibt auch wenn es nur temporär ist. Du hast aber den Vorteil, dass man die immer erweitern kann ohne auf solche Nebeneffekte Rücksicht nehmen zu müssen.

    • Antwort von nach 18 Stunden 0 hilfreich
      Re^2: PHP Tabelle ergänzen durch ein neue Datenfeld.

      Sorry, ich habe mich sehr unwissenschaftlich ausgedrückt. Möglicherweise ist meine Frage keine PHP Frage sondern eine MYSQL Frage.
      So wird die Tabelle im Moment angesprochen:
      --------------------------------------------
      $query = "CREATE TABLE `$times_table_name` (".
      "`plan_nr` int(10) unsigned NOT NULL default '0',".
      "`last_mod` int(10) unsigned NOT NULL default '0'".
      ") TYPE=MyISAM;";
      if (!mysql_query($query)) die ("$prog_nm.php: Tabelle $times_table_name konnte nicht angelegt werden. Line: ".__LINE__);
      header ("Location: $PHP_SELF"); exit;
      -------------------------------------------
      So soll sie in Zukunft aussehen (zusätzlich owner_name):
      -------------------------------------------
      $query = "CREATE TABLE `$times_table_name` (".
      "`plan_nr` int(10) unsigned NOT NULL default '0',".
      "`last_mod` int(10) unsigned NOT NULL default '0'".
      "`owner_name` varchar(15).
      ") TYPE=MyISAM;";
      if (!mysql_query($query)) die ("$prog_nm.php: Tabelle $times_table_name konnte nicht angelegt werden. Line: ".__LINE__);
      header ("Location: $PHP_SELF"); exit;
      -----------------------------------------------
      Mein Problem ist: Was passiert mit einer „lebenden“ Tabelle, wenn ich ein Feld hinzufüge. Sind dann alle alten Daten weg oder geht das problemlos. ODER muss ich die Tabelle „umkopieren“ von alter Tabelle auf neue Tabelle.
      Gruss – Juergen

      • Antwort von nach einem Tag 0 hilfreich
        Re^3: PHP Tabelle ergänzen durch ein neue Datenfeld.

        Hallo Jürgen
        Da passiert mit Deiner Tabelle garnichts. Deine Daten bleiben erhalten.
        Gruß Volker

      • Antwort von nach einem Tag 0 hilfreich
        Re^3: PHP Tabelle ergänzen durch ein neue Datenfeld.

        Ich muss Dir aber sagen, das Du die Tabelle nicht mit create Tabel neu erzeugen darfst. Dann sind Deine Daten natürlich alle weg. Du musst die Tabelle mit ALTER TABLE $times_table_name ADD COLUMN owner_name varchar(15) erweitern.

        • Antwort von nach einem Tag 0 hilfreich
          Re^4: PHP Tabelle ergänzen durch ein neue Datenfeld.

          Hallo Volker.
          Danke. Das ist ein guter Hinweis.
          Gruss - Juergen

  5. Antwort von - abgemeldetes Mitglied - nach 2 Tagen 0 hilfreich
    Re: PHP Tabelle ergänzen durch ein neue Datenfeld.

    Hallo Juergen!

    Ich verstehe nicht ganz was du meinst, ich gehe mal davon aus, dass du http://de.php.net/manual/de/book.array.php Arrays meinst?

    Meiner Meinung nach sollte es dann nicht möglich sein, eine weitere Dimension hinzuzufügen. Erstelle doch ein weiteres, dreidimensionales in das du mit Hilfe einer foreach-Schleife die Daten hineinkopierst. Infos dazu gibt es auch hier: http://de.php.net/manual/de/control-structures.forea...

    Viel Erfolg bei deinem Projekt!

    Matthias

    • Antwort von nach 3 Tagen 0 hilfreich
      Re^2: PHP Tabelle ergänzen durch ein neue Datenfeld.

      Danke.
      Das Problem ist immer, wenn man aus einer anderen System- / Programmier-Welt kommt.
      Dann hapert es an der Verständigung.
      Man spricht aneinander vorbei.
      Aber mir ist jetzt alles klar.
      Danke.
      Juergen.

Jetzt auf diese Frage antworten.