Zwei SQL Werte gleichzeitig in mehrere tabellen schreiben?
Zwei SQL Werte gleichzeitig in mehrere tabellen schreiben?
Hallo ich versuche mich gerade an kleineren anpssungen an meine anderen seiten und müßte dazu wissen wie ich zwei werte gleichzeitig in drei oder vier verschiedene tabellen schreiben kann?
normal ist es ja so
$sql = "INSERT INTO " . $table_prefix . "tabelle1 (wert1, wert2, wert3) VALUES (NULL, '$wert1', '$wert2', '$wert3')";
Nur wie kriegt man es hin das diese werte nun auch in tabelle 2 3 und 4 gleichzeitig eingetragen werden?
Wäre über hilfe Eurerseits sehr erfreut
normal ist es ja so
$sql = "INSERT INTO " . $table_prefix . "tabelle1 (wert1, wert2, wert3) VALUES (NULL, '$wert1', '$wert2', '$wert3')";
Nur wie kriegt man es hin das diese werte nun auch in tabelle 2 3 und 4 gleichzeitig eingetragen werden?
Wäre über hilfe Eurerseits sehr erfreut
- oxpus
- Administrator
- Beiträge: 28735
- Registriert: Mo 27.Jan, 2003 22:13
- Wohnort: Bad Wildungen
- Kontaktdaten:
Nur mit weiteren INSERT INTO. Für jede Tabelle einmal.
Diese Befehle lassen sich NICHT kombinieren!
Wäre auch logisch falsch, das zu versuchen...
Diese Befehle lassen sich NICHT kombinieren!
Wäre auch logisch falsch, das zu versuchen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Also ich habe das nun so versucht:
Ich hoffe das ist erstmal im Grundgedanken nicht verkehrt oder?
Leider wird dann aber eine Fehlermeldung rausgegeben
Nur was ist daran falsch oder stimmt der ganze ansatz nicht?
Code: Alles auswählen
$sql = "INSERT INTO " . $table_prefix . "usercars (usercars_id, user_id, usercars_pic, usercars_carname, usercars_mods, usercars_cylinders, usercars_desc, usercars_exhaust, usercars_power, usercars_topspeed) VALUES (NULL, '$user_id', '$usercars_pic', '$usercars_carname', '$usercars_mods', '$usercars_cylinders', '$usercars_desc', '$usercars_exhaust', '$usercars_power', '$usercars_topspeed')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, $lang['L_USERCARS_MOD1'], '', __LINE__, __FILE__, $sql);
}
$sql = "INSERT INTO " . $table_prefix . "usersystemboard (usercars_id, user_id) VALUES (NULL, '$user_id', '$usercars_carname')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, $lang['L_USERCARS_MOD1'], '', __LINE__, __FILE__, $sql);
}Leider wird dann aber eine Fehlermeldung rausgegeben
Die Tabellen sind komplett gleich als test und da ich später auch nur die userid´s und namen brauche habe ich den hoffentlich ordentlich aus dem insert entfernt.Fehler beim Eintragen in die Datenbank
DEBUG MODE
SQL Error : 1136 Column count doesn't match value count at row 1
INSERT INTO phpbb_usersystemboard (usercars_id, user_id) VALUES (NULL, '2', 'hhhhhhhhhhh')
Nur was ist daran falsch oder stimmt der ganze ansatz nicht?
- oxpus
- Administrator
- Beiträge: 28735
- Registriert: Mo 27.Jan, 2003 22:13
- Wohnort: Bad Wildungen
- Kontaktdaten:
Die Tabellen ja, das bestreite ich jetzt mal nicht.
Der Ansatz ist auch korrekt.
Aber:
Wenn Du schon die Felder usercars_id und user_id (also 2 Felder!) in dem INSERT INTO vorgibst, aber dann 3 Werte, nämlich hier NULL, 2 und hhhhhhhhhh speichern willst, dann kann die Datenbank nur ein
Kurzum: Die Feldnamen definierst Du ja und genau in dieser Reihenfolge UND ANZAHL sind auch die Werte in das INSERT INTO einzutragen.
Sonst passt die Anzahl der Werte nicht zu den Feldern und die Datenbank hat dann ein Problem, den Befehl korrekt auszuführen.
Denn:
Welchen Wert dürfte Sie dann fallen lassen???
Der Ansatz ist auch korrekt.
Aber:
Wenn Du schon die Felder usercars_id und user_id (also 2 Felder!) in dem INSERT INTO vorgibst, aber dann 3 Werte, nämlich hier NULL, 2 und hhhhhhhhhh speichern willst, dann kann die Datenbank nur ein
zurückgebenColumn count doesn't match value count
Kurzum: Die Feldnamen definierst Du ja und genau in dieser Reihenfolge UND ANZAHL sind auch die Werte in das INSERT INTO einzutragen.
Sonst passt die Anzahl der Werte nicht zu den Feldern und die Datenbank hat dann ein Problem, den Befehl korrekt auszuführen.
Denn:
Welchen Wert dürfte Sie dann fallen lassen???
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Na super warum muß es immer erst mit deiner Hilfe merken das ich was falsch gemacht habe.
Da das nun so funktioiniert wie ichs mir vorgestellt habe und ich ja die entsprechenden Einträge löschen oder editieren möchte habe ich das nun auch passend dort eingesetzt. Und funktioniert auch mit sämtlichen texabschnitten und dem standardbild vom usercarsmod.
Nun hab ich mir meine umstellung des usercars mods mal genauer überlegt und habe gedacht es wäre doch eigentlich auch möglich das ich anstelle zusätzlicher Felder dort einzufügen und dann die eingabe zu verteilen auf zwei seiten, ich den mod doppelt nutze mit zwei datenbanken oder?
Dann könnten die User ja auch verschiedene bidler hochladen für jede seite. Oder mach ich da nun die falsche überlegung/den falschen gedanken?
Wenn ich das dann auch mit dem ersten löschen möcht wäre doch dieser code verantwortlich oder?
Kann ich nun das einfach nochmal mit der zweiten Tabelle machen und muß es dabei der gleiche ordner sein wo die bilder gespeichert werden? oder wie ließe sich das bewerkstelligen
Da das nun so funktioiniert wie ichs mir vorgestellt habe und ich ja die entsprechenden Einträge löschen oder editieren möchte habe ich das nun auch passend dort eingesetzt. Und funktioniert auch mit sämtlichen texabschnitten und dem standardbild vom usercarsmod.
Nun hab ich mir meine umstellung des usercars mods mal genauer überlegt und habe gedacht es wäre doch eigentlich auch möglich das ich anstelle zusätzlicher Felder dort einzufügen und dann die eingabe zu verteilen auf zwei seiten, ich den mod doppelt nutze mit zwei datenbanken oder?
Dann könnten die User ja auch verschiedene bidler hochladen für jede seite. Oder mach ich da nun die falsche überlegung/den falschen gedanken?
Wenn ich das dann auch mit dem ersten löschen möcht wäre doch dieser code verantwortlich oder?
Code: Alles auswählen
$sql = "SELECT usercars_pic FROM " . $table_prefix . "usercars WHERE usercars_id = " . $usercars_id;
if ( ($result = $db->sql_query($sql)) )
{
while ( $row = $db->sql_fetchrow($result) )
{
unlink("./".$row['usercars_pic']);
}
}- oxpus
- Administrator
- Beiträge: 28735
- Registriert: Mo 27.Jan, 2003 22:13
- Wohnort: Bad Wildungen
- Kontaktdaten:
Das kann ruhig der gleiche Ordner sein. Es wird ja der Bildname eingetragen und der kann ja egal wo gespeichert vorzufinden sein.
Und wenn Du mit 2 "Datenbanken" Tabellen meinst, dann ja, wäre vielleicht hierfür, also für 2 Seiten, das Geschickteste...
Und wenn Du mit 2 "Datenbanken" Tabellen meinst, dann ja, wäre vielleicht hierfür, also für 2 Seiten, das Geschickteste...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Also ich habe es nun ordentlich gemacht das wenn ich in der ersten datei alles speichere in der zweiten damit drei werte gespeichert werden. Leider habe ich nun probleme sonstige einstellungen in der zweiten zu speichern es wird irgendwie garnichts abgespeichert. Was kann ich da nun machen?
Egal was ich versuche ich schaffe es nicht die simpelsten werte dort speichern zu lassen. selbst die orginal datei macht probleme dabei und in der habe ich dann nur die datenbankangaben geändert.
Kanns da irgendwas geben was ich übersehe?
Egal was ich versuche ich schaffe es nicht die simpelsten werte dort speichern zu lassen. selbst die orginal datei macht probleme dabei und in der habe ich dann nur die datenbankangaben geändert.
Kanns da irgendwas geben was ich übersehe?
Also das sind die zwei Dateien
Die orginale mit der erstn dbtabelle wo jetzt nur eben drei werte in die zweite gleich mit eingetragen geändert oder ausgetragen werden.
usercars
und hier nun die datei die dazu gekommen ist in der eigentlich noch die orginaldaten stehen bis auf den tabellenname
usercars zweite seite
Kann das vielleicht irgendwas mit den Bildern zutun haben? Weil eigentlich muß ich ja beim erstellen solch eines eintrags im orginal immer ein bild mit hochladen.
Die orginale mit der erstn dbtabelle wo jetzt nur eben drei werte in die zweite gleich mit eingetragen geändert oder ausgetragen werden.
usercars
und hier nun die datei die dazu gekommen ist in der eigentlich noch die orginaldaten stehen bis auf den tabellenname
usercars zweite seite
Kann das vielleicht irgendwas mit den Bildern zutun haben? Weil eigentlich muß ich ja beim erstellen solch eines eintrags im orginal immer ein bild mit hochladen.
- oxpus
- Administrator
- Beiträge: 28735
- Registriert: Mo 27.Jan, 2003 22:13
- Wohnort: Bad Wildungen
- Kontaktdaten:
Nochmal für Langsame wie mich:
Welche Daten sollen denn in mehrere Tabellen gleichzeitig geschrieben werden und was hast Du bislang genau dafür programmiert?
Wenn nur ein Bild hochzuladen ist, dann muss das nicht auch verdoppelt werden. Und das hat auch nichts mit den SQL-Anweisungen zu tun. Die Datenbank interessiert ja auch weniger, ob Dateien auf den Webspace geladen werden oder nicht
Welche Daten sollen denn in mehrere Tabellen gleichzeitig geschrieben werden und was hast Du bislang genau dafür programmiert?
Wenn nur ein Bild hochzuladen ist, dann muss das nicht auch verdoppelt werden. Und das hat auch nichts mit den SQL-Anweisungen zu tun. Die Datenbank interessiert ja auch weniger, ob Dateien auf den Webspace geladen werden oder nicht
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Ich habe es mir so gedacht das die werte usercars_id, user_id und usercars_carname sofort beim erstellen in die orginaltabelle (usercars) und in die zweite (usersystemboard) geschrieben werden. dadurch würden die daten in beiden tabellen pbereinstimmen sodas die zweite tabelle eigentlich nur eine erweiterung der angaben bewirkt welche ich auf einer zweiten seite plazieren möchte. das funktioniert auch bestens ich kann beim erstellen bearbeiten und löschen den jeweiligen eintrag aus beiden Tabellen entfernen. Danach habe ich eine kopie der orginal php genommen die tabellenangaben auf die zweite tabelle geändert und die datei umbenannt (usersystemboard). natürlich auch eine tpl dafür gemacht. Nun wollte ich einen eintrag dort bearbeiten und speichern und da ist mein problem. Ich kann zwar so wie auf der ersten seite die einträge bearbeiten aber beim speichern gibt es probleme. Dazu dachte ich das auf der zweiten seite (usersystemboard nun das hochladen von bildern nicht als pflicht haben zu wollen entweder man lädt hoch oder nicht, aber dafür habe ich bisher noch nichts gemacht weil ich erstmal das speichern fertig haben wollte.
Tja da wären nun meine Fragen was ich falsch mache oder ob ich einen kompletten denkfehler mach oder hängt das vielleicht doch jetzt schon von dem pflichtbild ab?
Naja das war zwar mit der themaerstellung nicht das was ich zuerst wollte (damit hast du mir schon sehr geholfen) aber dadurch das ich alles mit dem mod getestet hatte fand ich diese art der umstellung und aufteilung vom gedanken her nicht schlecht.
Tja da wären nun meine Fragen was ich falsch mache oder ob ich einen kompletten denkfehler mach oder hängt das vielleicht doch jetzt schon von dem pflichtbild ab?
Naja das war zwar mit der themaerstellung nicht das was ich zuerst wollte (damit hast du mir schon sehr geholfen) aber dadurch das ich alles mit dem mod getestet hatte fand ich diese art der umstellung und aufteilung vom gedanken her nicht schlecht.
- Bootenks
- Beiträge: 1836
- Registriert: Sa 29.Mai, 2004 23:36
- Wohnort: G?rlitz (?stlichste Stadt Deutschlands)
ich habs jetzt auch versucht zu verstehen komme aber nicht dahinter was der Zweck sein sollte... Aber eins gilt in der Datenbankwelt => Erzeuge nie redundante Datenbankeinträge! (Ineffizienz vorprogrammiert) Es gibt da ein Stufenmodell, das die Reduktion beschreibt. Man sollte wenn schon immer mit Keys arbeiten, die wiederurm unique sein müssen! Viele Regeln kurzer Sinn! Was du versuchst versteh ich nicht und scheint unpraktisch wie useless zu sein. *sorry about that*
Nur ein Informatik Student. ^^