Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP Registration mit 2 Datenbank tabellen

Frage Entwicklung PHP

Mitglied: L0g1t3ch

L0g1t3ch (Level 1) - Jetzt verbinden

04.08.2010, aktualisiert 11.08.2010, 3657 Aufrufe, 9 Kommentare

Hallo liebe Gemeinde, ich hoffe ihr könnt mir helfen

Seit zwei guten Tagen hänge ich nun an diesem Registrations Script.

Zur Situation in der Datenbank Tabelle "user" werden "Passwor, Email adresse, Aktiv, Nick und die letzte aktion gespeichert"

01.
CREATE TABLE `user` ( 
02.
`id` int( 11 ) NOT NULL AUTO_INCREMENT , 
03.
`nick` varchar( 50 ) COLLATE latin1_german1_ci NOT NULL , 
04.
`resetkey` varchar( 50 ) COLLATE latin1_german1_ci default NULL , 
05.
`rang` int( 11 ) NOT NULL , 
06.
`email` varchar( 120 ) COLLATE latin1_german1_ci NOT NULL , 
07.
`passwd` varchar( 250 ) COLLATE latin1_german1_ci NOT NULL , 
08.
`activ` varchar( 50 ) COLLATE latin1_german1_ci NOT NULL , 
09.
`last` varchar( 30 ) COLLATE latin1_german1_ci NOT NULL , 
10.
PRIMARY KEY ( `id` ) , 
11.
UNIQUE KEY `nick` ( `nick` ) 
diese Tabelle soll mit dieser Verknüpft werden

01.
CREATE TABLE `user` ( 
02.
`id` int( 11 ) NOT NULL AUTO_INCREMENT , 
03.
`uID int( 11 )  NOT NULL , 
04.
`name` varchar( 120 ) COLLATE latin1_german1_ci NOT NULL , 
05.
`vname` varchar( 120 ) COLLATE latin1_german1_ci NOT NULL , 
06.
PRIMARY KEY ( `uID) ,
verbunden werden und bei der Registration soll sofort in beide Tabelle gespeichert werden. Wie verknüpf ich die beiden miteinander das, jenes klappt
bzw ist das überhaupt möglich?
Mitglied: Guenni
04.08.2010 um 01:47 Uhr
Hi L0g1t3ch,

ich vermute mal, dass du mit PHP/MySQL arbeitest ?

Dann such' mal nach folgenden Begriffen:

- mysql referentielle integrität
- mysql foreign keys constraint

Da gibts 'ne Menge Ergebnisse, die in deine Richtung zielen.


Gruß
Günni
Bitte warten ..
Mitglied: dog
04.08.2010 um 03:10 Uhr
In der selben Datenbank sind die Tabellen aber offensichtlich nicht, da es keine doppelten Tabellennamen geben darf?
Bitte warten ..
Mitglied: maretz
04.08.2010 um 07:38 Uhr
und was dann noch fehlt: Wie soll das denn zusammenhängen? EINE Lösung wäre ja z.B. bei der user2-Tabelle (der unteren) das Feld id ohne Auto-Inc zu machen.
Beim Eintragen in die user1-Tabelle gibt dir ja die Sprache (z.B. bei php mittels mysql_fetch_id, bei java indem du das CreateStatement entsprechend anpasst,...) die ID des zuletzt eingetragenen Datensatzes zurück. Diese trägst du dann in deine user2-Tbl. als ID ein. Schon hast du immernoch den Fall das es keine doppelten IDs geben kann (da du auf das Auto-Inc von Tabelle 1 direkt zurückgreiffst) und hast über die ID ne schöne numerische Verbindung geschaffen...
Bitte warten ..
Mitglied: L0g1t3ch
04.08.2010 um 10:16 Uhr
doch sind die in der gleichen datenbank aber ich habe oben den code falsch eingefügt. Die eine heißt

user und die andere user_pers

@Günni vielen dank hat mir sehr weitergeholfen werde es heute weiter probieren mit den Suchbegriffen
Bitte warten ..
Mitglied: Privateer3000
04.08.2010 um 15:04 Uhr
Hallo,

eine normalisierungen solltest du schon bedenken.
D.h. wozu die 2. Tabelle wenn doch schon fast alles in der ersten steht?
Sinn würde es haben z.b. eine Rechtetabelle einzurichten oder andere Attribute die
ein User haben könnte.
Für solche Fälle sind, wie Günni richtig bemerkt, die Fremdschlüssel gültig.
In deinem Falle müsste die uID aus Tab2 mit ID aus Tab2 verknüpft werden.
Aber eintragen musst du schon in beide Tabellen per sql statement.
Denn jede Tabelle muss explizit angesprochen werden um Daten einzufügen.
Es gibt zwar noch Erweiterungen in SQL die das können, aber da gehört MySQL nicht dazu.
Bitte warten ..
Mitglied: L0g1t3ch
05.08.2010 um 00:42 Uhr
so ich hab das problem behoben können, ich danke euch viele male. Wieder was dazu gelernt.
Bitte warten ..
Mitglied: maretz
05.08.2010 um 07:38 Uhr
gut - und für den zukünftigen Fragesteller der genau dieselbe Frage hat wäre es mehr als freundlich wenn du auch sagst WIE du das Problem behoben hast... Könnte ja sein das irgendwer hier in 500 Jahren nochmal reinsieht und sich freut wenn er die Lösung dann auch findet... (Er/Sie wird sich sicher auch freuen wenn man nur liest das du es gelöst hast -> aber wir sind hier nicht bei den Mathematikern die sich nach 3 Wochen schon nen Ast freuen weil die sagen können "ich weiss das es eine Lösung gibt - nur welche ist noch nicht klar")
Bitte warten ..
Mitglied: L0g1t3ch
05.08.2010 um 09:09 Uhr
Ei ei el capitano Lösungsweg werd ich heute abend einstellen wenn ich zuhause bin.
Bitte warten ..
Mitglied: maretz
06.08.2010 um 08:56 Uhr
Na - dein Heimweg is aber zimlich lang... oder du lebst in ner anderen Zeitzone in der der Abend später beginnt? ;)
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (22)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...