Top-Themen

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

Mit PHP Abfrage in mehrere MySQL-Tabellen schreiben

Mitglied: 31444

31444 (Level 1)

12.09.2006, aktualisiert 28.09.2006, 9298 Aufrufe, 10 Kommentare

Hallo zusammen,

ich habe erst kürzlich eine MySQL-Datenbank erstellt, mit mehreren Tabellen. Jetzt möchte ich gerne mittels eines Mysql-Befehls (insert) einen Datensatz in die verschiedenen Tabellen eintragen, mittels der Funktion mysql_query(). Wie mach ich das?

Ich schätze die Funktion mysql_query macht nicht mit. Die wertet wohl nur eine MYSQL-Funktion aus, oder?
Mitglied: Listo
12.09.2006 um 15:32 Uhr
Hallo Toastman,

das geht.
Und war musst Du nur folgendes machen:
Verbindung aufbauen -> Query ausführen -> Verbindung abbauen

Und das wiederholst Du für die verschiedenen Datenbanken.

Gruß
Listo
Bitte warten ..
Mitglied: 31444
13.09.2006 um 07:42 Uhr
Und wie funktioniert es, wenn ich das in einem Rutsch mit einem Verbindungsaufbau machen möchte? Ich möchte die Datensätze übrigens nur in verschiedene Tabellen einer Datenbank bekommen. Das muss doch möglich sein, wenn man die Grundlagen vom Datebankaufbau (keine redundanz, alles atomar aufgebaut usw.) beachtet oder nicht?

Ich habe vorher immer eine große Tabelle gehabt, wo alles drinstand und jetzt hab ich mal umgestellt und alles wird so schwierig =).
Bitte warten ..
Mitglied: Listo
13.09.2006 um 07:45 Uhr
Hallo,

dann machst Du folgendes:

Verbindug aufbauen -> Query 1 ausführen -> Query 2 ausführen ... -> Verbindung abbauen

Alles in ein Query zu packen wird nicht klappen.
Du musst also für jede Tabelle ein Query erzeugen.


Gruß
Listo
Bitte warten ..
Mitglied: 31444
26.09.2006 um 11:14 Uhr
Hey Listo,

du hast natürlich recht und es ist auch garnicht so schwierig. Jetzt muss ich mir nur noch mal was ausdenken, wie die Verknüpfungen innerhalb des Datensatzes laufen soll. Hättest du da vielleicht auch noch einen Tip für mich?

Danke
Bitte warten ..
Mitglied: Listo
26.09.2006 um 11:26 Uhr
Hi Toastman,

ich würde eine dritte Tabelle erstellen, in der Du dann in 2 Spalten schreibst, welcher Datensatz der einen Tabelle zum anderen Datensatz der anderen Tabelle gehört.

Unter Access nennt man so etwas Hilsftabelle.

Also 3 Querys...


Gruß
Listo
Bitte warten ..
Mitglied: 31444
26.09.2006 um 12:05 Uhr
Hey Listo,

ich wollt es eigentlich so machen, dass ich in jeder Tabelle eine Spalte mit dem jeweiligen Fremdschlüssel (der ID der anderen Tabelle) einrichte. Aber wie kann ich einen Datensatz, den ich schon auf mehrere Tabellen aufteile (dank deiner Hilfe =) gleichzeitig verknüpfen?

Ich möchte einen Datensatz eingeben, der aus mehreren Feldern besteht und diese Feldinhalte sollen in verschiedenen Tabellen gespeichert werden. Wenn ich jetzt auf den "Speicher"-Button meines Formulars gehe, möchte ich die Angaben sowohl in die div. Tabellen eintragen, als auch gleich die Verknüpfung untereinander setzen. Gibt es hier vielleicht auch so eine Art "internen Zeiger" bei MySQL, der - wie auch immer - Info über die Position hergibt?
Bitte warten ..
Mitglied: Listo
26.09.2006 um 12:10 Uhr
Hallo,

mir ist so eine Funktion in MySQL nicht bekannt.
Also musst Du doch eine zusätzliche Tabelle verwenden, in der Du dann die Verknüpfungen abspeicherst.

Z.B: Datensatz1023 aus Tabelle 1 gehört zu Datensatz 4711 aus Tabelle2.

Das ist eine Möglichkeit, die ich in Erwähnung ziehen würde.

Gruß
Listo
Bitte warten ..
Mitglied: 31444
26.09.2006 um 12:44 Uhr
Aber wie bekomm ich die da zeitgleich eingetragen?
Bitte warten ..
Mitglied: Listo
26.09.2006 um 13:20 Uhr
siehe oben...

Beim INSERT: Verbindung aufbauen -> Query 1 ausführen -> Query 2 ausführen -> Query 3 (für die Hilfstabelle) ausführen -> Verbindung abbauen.

Wenn Du die Daten aus der Tabelle lesen willst, wie folgt:
Verbindung aufbauen -> Query 1 ausführen -> Query 3 ausführe (für die Hilfstabelle) -> Query 2 ausführen -> Verbindung abbauen.


Gruß
Listo
Bitte warten ..
Mitglied: 31444
28.09.2006 um 15:25 Uhr
Nee du hast mich falsch verstanden, aber ich hab´s auch so hinbekommen =). Und zwar schreibe ich per HTML-Formular einen Datensatz, der wenn er "gespeichert" wird, in mehrere Tabellen geschrieben wird (Eine Adresse wird angegeben. Zu diesem Adressnamen, kommt noch ein Adressort, eine Schule, eine Schulart usw.). Ich muss also, wenn ich den Datensatz in die DB schreibe, ermitteln, welcher Ort zu einem Adressnamen gehört und die Ort-ID in die dafür vorgesehen Spalte (Fremdschlüssel) der Adresstabelle übergeben. Ich hab das folgendermaßen gemacht:

Wenn ich einen neuen Komplettdatensatz in die Tabellen schreiben will, schau ich per "select ... from... where Apfel = $Apfel LIMIT 0,1" und mysql_fetch_row ob z.B. der Ort in der Tabelle ORT schon besteht. Wenn nicht, gibts einen Ortsinsert, ansonsten nur die Ausgabe, dass der Ort schon besteht.

Ob der Ort jetzt schon besteht oder nicht, such ich die ID von dem betroffenenen Ort-Datensatz heraus und speicher die ID in einer Variablen. Zum Schluss schreib ich meinen Hauptdatensatz und da kommen alle FK´s rein. Also ich schreib in Tabelle Adresse z.B. Ort nur die Ort-ID.

Voll umständlich, aber einigermaßen schnell =). Außerdem ist so gewähleistet, dass ich keine doppelten Datensätz in den "Untertabellen" wie z.B. Ort habe.

Falls es eine bessere Praxis gibt, schreibt sie mir bitte.
Bitte warten ..
Ähnliche Inhalte
PHP
PHP MySQL Login
Frage von YanmaiPHP7 Kommentare

Hallo ihr Administratoren, ich habe eine Datenbank, in der alle User des Netzwerkes enthalten sind. Wenn ein User sich ...

Debian

Schreib-Berechtigung für PHP-Anwendung unter Debian

gelöst Frage von itebobDebian6 Kommentare

Hallo, ich möchte mit so einer Datei schreiben.php: eine neue Datei erstellen. Das Beispiel oben funktioniert auf dem Webspace ...

PHP

Benutzerregistrierung php, mysql

Frage von zelamediaPHP5 Kommentare

Hallo, kennt jemand ein gutes Tutorial/Anleitung wie ich mit php/mysql eine einfache Benutzer-Registrierung umsetzte mit Benutzerrollen also Administrator/Mitarbeiter usw. ...

PHP

HTML PHP MySQL Webanwendung

Frage von hahaxd3PHP12 Kommentare

Hallo Leute, Ich möchte gerne Meine Datenbank auf einer webseite darstellen. Dabei sollte diese Als normale Tabelle dargestellt sein. ...

Neue Wissensbeiträge
Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 1 TagInternet5 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Windows 10

Netzwerk-Bug in allen Windows 10-Versionen durch Januar 2019-Updates

Information von kgborn vor 1 TagWindows 101 Kommentar

Nur ein kurzer Hinweis für Admins, die Windows 10-Clients im Portfolio haben. Mit den Updates vom 8. Januar 2019 ...

Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 2 TagenWindows 102 Kommentare

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 2 TagenSicherheit6 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Heiß diskutierte Inhalte
TK-Netze & Geräte
TAPI auf einem Win2016Server installieren und einrichten
Frage von wstabelTK-Netze & Geräte30 Kommentare

Hallo liebe Admins, ich habe folgende Situation: 1 Windows Server 2016 Standard als DC 1 SNOM 710 IP-Telefon 1 ...

Batch & Shell
Mit findstr batch doppelte zeilen einer txt löschen
Frage von Burningx2Batch & Shell25 Kommentare

Hi Vor einer weile habe ich im netzt einen windows shell befehl gefunden mit welchem man über die konsole ...

Verschlüsselung & Zertifikate
Netzwerkfreigabe Verschlüsselung
Frage von grill-itVerschlüsselung & Zertifikate20 Kommentare

Moin zusammen, sicher nutzen hier die ein oder anderen ein Produkt zur Verschlüsselung von Netzwerkfreigaben/-laufwerken auf denen hochsensible Daten ...

Microsoft
Übertragung von MS Volumenlizenzen
Frage von SherlockineMicrosoft20 Kommentare

Ich bin Angestellte in einer kleinen 10-köpfigen IT-Firma, die Netzwerklösungen, Telefonielösungen und Ähnliches anbietet. Im Sommer hatten wir einen ...