Thread Verfasser: Catzenjaeger
Thread ID: 1004
Thread Info
Es gibt 3 Beiträge zu diesem Thema, und es wurde 2942 Mal angesehen.  Ausserdem wurden Dateien angehängt.
 Thema drucken
Daten zweier Tabellen verknüpfen (beim speichern)
Catzenjaeger
Nach wie vor stehe ich vor dem massiven Problem, dass ich zwar Bilder und Daten in verschiedenen Tabellen in einem Rutsch speichern kann allerdings nicht sinnvoll verknüpfen. Ich weiss nicht, wie ich die wieder einlesen soll.

meine Bildertabelle ist wie folgt:

Zitat

$inf_newtable[] = DB_FIGURE_IMAGES." (
figure_images_image_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
figure_images_figure_id varchar(100) NOT NULL DEFAULT '',
figure_images_image varchar(100) NOT NULL DEFAULT '',
figure_images_thumb varchar(100) NOT NULL DEFAULT '',
figure_images_sorting varchar(50) NOT NULL DEFAULT '',
figure_images_language VARCHAR(50) NOT NULL DEFAULT '".LANGUAGE."',
PRIMARY KEY (figure_images_image_id)
) ENGINE=MyISAM DEFAULT CHARSET=UTF8 COLLATE=utf8_unicode_ci";


in meiner anderen Tabelle gint es das:

Zitat

figure_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,


eigentlich hatte ich gedacht, dass mittels lastid diese auch überall eingetragen wird. Dem ist aber nicht so. Logisch ... die Figur wird mit allen Daten in die Tabelle FIGURE_ITEMS eingetragen und dort wird die ID automatisch vergeben. Die Bilder ID stimmen deshalb nicht überein -- warum auch immer.

zur Veranschaulichung mal 2 Bilder der jeweiligen Tabellen. Wäre super wenn mir da jemand helfen könnte.
Catzenjaeger hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
SuNflOw
Du hast hier einen Architektonischen Fehler der dir das Leben schwer macht.

Nicht ein Bild hat eine Figur, sondern eine Figur hat ein Bild.

Demzufolge würdest du zuerst das Bild in die Datenbank schreiben. Danach würdest du eine Abfrage machen um an die ID des zuletzt eingefügten Bildes zu kommen. Hierbei darauf achten dass du im WHERE deiner Abfrage auch genau die gleichen Daten wieder abfragst. !! Dies ist die Sicherste Methode !! Es gibt klar noch andere mit last insert id bla bla.

Wenn du dann die letzte ID hast, trägst du deine Figur in die Datenbank ein. Als Information für das Feld in dem die Bild ID gespeichert werden soll, gibst du die oben ermittelte ID mit. Natürlich prüfst du bevor du die Figur einträgst ob deine ID auch wirklich da ist.

Vereinfachtes Beispiel:
Bild einfügen:

INSERT INTO Bild (image) VALUES ('image')

ID Abfragen:

SELECT id FROM Bild WHERE image='image'

Wenn __ID_AUS_ABFRAGE__ nicht leer und größer 0, dann Figur anlegen:

INSERT INTO Figur (bild_id, name) VALUES (__ID_AUS_ABFRAGE__, 'Figur1') 

________________________________________________
I got my swim trunks and my Flippie-Floppies *-*
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Catzenjaeger
HMNN fürn Anfänger hartes Brot Smile Danke für die Erläuterung. Also das Bild wird zuerst gespeichert. Danach die Figur. Hinzu kommt noch, das ich bis zu 10 Bilder uploaden will. Der mehrfach Upload klappt auch jedoch bei mir bekommt nur die erste Figur eine ID die weiteren immer 0. Aber es ist die falsche ID!!! Auch das bereitet mir Probleme.

Gibt es denn in der Architektur der Tabellen einen Änderung die mir das Leben einfacher machen würde .. so was wie ein eindeutiges Zeichen was ich beiden Tabellen eintragen alles (irgendwie automatisch vergeben oder wie auch immer) wonach ich dann später die beiden Tabellen wieder zusammensetzen kann? Da ich ja mehrere Bilder ablege werden Abfragen nach ID unmöglich .. ich wüsste nicht wie ich Abfragen soll welche Bilder ich gerade gespeichert habe. Das können ja bis zu 10 sein.



Ich bin soweit fortgeschritten nur das mit den Bildern bekomme ich nicht gebacken. Weder das korrekte abspeichern, wieder auf rufen, editieren und löschen. Das ist aber auch nicht einfach ... man man man
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Springe ins Forum: