| 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! Post your PHP questions here! |
 |

17-10-2010, 16:33
|
|
comein
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 6
|
|
phpmyadmin Daten kopieren
Hallo
Ich stehe vor folgender Aufgabe:
Ich habe 2 Tabellen:
benutzer (Enthält: benutzer_id, name, vorname etc.)
benutzer_daten (Enthält: benutzer_id, weitere Daten).
Das Ziel ist nun, dass ich wenn ich via php meine Datenbankabfrage mache, dass ich Daten aus beiden Tabellen abfragen kann bezüglich einer Person, also zusammen gehörende Daten.
Zur Identifikation der Daten habe ich in beiden Tabellen die Spalte benutzer_id angelegt.
Diese wird in der Tabelle benutzer übers auto increament fortgeführt.
Ich möchte es nun erreichen, dass die benutzer_id aus der Tabelle benutzer auch in die Tabelle benutzer_daten in benutzer_id geschrieben wird, möglichst automatisiert, damit klar ist, welche Daten zu welchem Benutzer gehören. Quasi als Indentifikation. Die Tabelle benutzer_daten ist bis dahin leer, da diese erst die Daten aufnehmen soll, wenn die benutzer_id vorhanden ist. Deswegen ist diese Identifikation so wichtig für mich.
Ist das mit phpmyadmin machbar?
Danke im vorraus
Grüße comein
|

17-10-2010, 17:12
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
IMHO nicht.
Das würde zudem voraussetzen, dass MySQL oder PMA weiß, in welcher Beziehung 1:1 die beiden Tabellen miteinander stehen. Das kannst du aber imho nicht hinterlegen.
|

17-10-2010, 17:19
|
|
comein
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 6
|
|
Ok trotzdem danke für die Antwort.
Habe schon eine alternative lösung im Kopf, macht es nur bissel komplizierter
Grüße comein
|

18-10-2010, 11:23
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Du kannst es mit Views und/oder Trigger versuchen. Ich weiß allerdings nicht, inwiefern phpMyAdmin beides unterstützt.
|

19-10-2010, 14:41
|
|
stephan1990
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 24
|
|
Wozu überhaupt 2 Tabellen? Sollte eine Normalisierte Datenbank 1:1-Beziehungen nicht in einer Tabelle unterbringen? Wo ist das Problem die Daten des Benutzers auch in dessen Tabelle zu speichern?
__________________
MFG Stephan
|

25-10-2010, 15:36
|
|
comein
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 6
|
|
mysql_insert_id klappt nicht
Hallo
So habe nun versucht einen mit auto increament kreierten Wert der als ID dient in einer anderen Tabelle zu nutzen, ebenfalls als ID.
Leider taucht nun das problem auf, dass in Tabelle 1 und 2 unterschiedliche Werte auftauchen und nicht die gleichen ID's, was eigentlich nicht sein kann, irgendwo muss der Wert ja herkommen
Hier mal die Schnippsel:
PHP-Code:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "registrierung_form")) { $insertSQL = sprintf("INSERT INTO benutzer (geschlecht, vorname, nachname, geburtstag, plz, wohnort, email, telefon, passwort) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, PASSWORD(%s))", GetSQLValueString($_POST['geschlecht'], "text"), GetSQLValueString($_POST['vorname'], "text"), GetSQLValueString($_POST['nachname'], "text"), GetSQLValueString($_POST['geburtstag'], "date"), GetSQLValueString($_POST['plz'], "text"), GetSQLValueString($_POST['wohnort'], "text"), GetSQLValueString($_POST['email'], "text"), GetSQLValueString($_POST['telefon'], "text"), GetSQLValueString($_POST['passwort1'], "text"));
$id = mysql_insert_id(); mysql_query ("INSERT INTO benutzer_daten (benutzer_id) VALUES ($id)");
Hier noch die Daten zur Tabelle.
Code:
CREATE TABLE `benutzer` (
`benutzer_id` int(11) NOT NULL AUTO_INCREMENT,
`geschlecht` char(200) DEFAULT NULL,
`vorname` char(200) DEFAULT NULL,
`nachname` char(200) DEFAULT NULL,
`geburtstag` date DEFAULT NULL,
`plz` char(7) DEFAULT NULL,
`wohnort` char(200) DEFAULT NULL,
`email` char(200) DEFAULT NULL,
`telefon` char(200) DEFAULT NULL,
`passwort` char(200) DEFAULT NULL,
PRIMARY KEY (`benutzer_id`),
KEY `usernummer` (`benutzer_id`),
KEY `benutzer_id` (`benutzer_id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=armscii8
Code:
CREATE TABLE `benutzer_daten` (
`benutzer_id` int(11) NOT NULL,
PRIMARY KEY (`benutzer_id`)
) ENGINE=MyISAM DEFAULT CHARSET=armscii8
Wie gesagt, die ID die ich in Tabelle 1 abfrage, ist eine durch auto increament erzeugte ID, diese wird nicht durch ein INSERT vorweg eingetragen.
Nur bekomme ich nach der Abfrage in Tabelle 2 nach dem 2. INSERT einen anderen Wert.
Primary Key ist gesetzt und Auto Increment in Tabelle 1 ebenfalls.
Danke für die mühe
Grüße force
Geändert von comein (25-10-2010 um 16:26 Uhr)
|

25-10-2010, 15:40
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Immernoch das selbe Problem, sogar die selben Tabelle. *merge*
PHP-Code in PHP-Tags – bitte editiere deinen letzten Beitrag entsprechend!
Relevanten PHP-Code posten. Mit dem was du zeigst, kann man nichts anfangen und dir kaum helfen.
Bei solchen Problemen solltest du stets auch die CREATE-Statements dazu liefern (in Code-Tags).
Geändert von onemorenerd (25-10-2010 um 15:44 Uhr)
|

25-10-2010, 19:08
|
|
comein
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 6
|
|
Problem gelöst, es lag lediglich eine falsche Anordnung im php code vor
Damit Thema ENDLICH erledigt.
|
|
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
|