PHP Tabelle ergänzen durch ein neue Datenfeld

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).

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

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.

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

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 " …"): 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’,’’)“):wink:.
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

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.

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

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

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

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.

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

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.

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

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

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.