Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 3703 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 ..
Ähnliche Inhalte
Datenbanken
gelöst MSSQL-Benutzer . Zugriff nur auf 2 Tabellen und 1 View (3)

Frage von Snuffchen zum Thema Datenbanken ...

Microsoft Office
gelöst EXCEL (OpenOffice) Inventurliste (wenn Wert dann in Tabelle 2 anzeigen) (3)

Frage von pyrolords zum Thema Microsoft Office ...

Datenbanken
gelöst SQL ORDER BY und Join mit 2 Tabellen (7)

Frage von Dipps zum Thema Datenbanken ...

PHP
Probleme mit PHP und mssql (2)

Frage von Invisan zum Thema PHP ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Windows Server
Kennwort vergessen bei Hyper vserver 2012r (12)

Frage von jensgebken zum Thema Windows Server ...

Linux Desktop
Bildschirmauflösung unter Linux festlegen (12)

Frage von itebob zum Thema Linux Desktop ...

Windows Userverwaltung
gelöst Administrator hat alle Rechte verloren (10)

Frage von mrdead zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Gebäude mit WLAN ausstatten (9)

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