Troff
Grünschnabel
Hi Folks,
ich bin Denise, bin über Fuffzich und beschäftige mich schon eine Weile mit PHP, würde mich aber immernoch als Anfängerin bezeichnen. Nun stehe ich vor einen Problem und hoffe, eine einfache Lösung zu finden, die nicht heisst "benenne das Feld um"...
Ich habe in MySQL eine relationale Datenbank gebaut. Ich habe drei Tabellen, eine beinhaltet eine Liste mit so genannten Collectoren, die haben zwar eine eindeutige ID (UUID), allerdings habe ich dennoch eine Datensatz ID hinzugefügt, um die Verknüpfung zu vereinfachen. Die zweite Tabelle beinhaltet eine Liste der über die Collectoren getätigten Zahlungen, hier ebenfalls vorhanden eine ID. Die dritte Tabelle verbindet nun in einem Datensatz die ID der Collectoren mit der ID der Zahlungen. Das klappte auch alles ganz gut, bis ich auf die Idee kam, mit die UUID, in der Tabelle "collectors" anzeigen lassen zu wollen, weil ich die gelegentlich brauche. Ich füge hier mal ein Bild der Relationen und Tabellen ein:
Das System läuft seit Jahren gut. Dass ich allerdings bei der Vergabe der Feldnamen Mist gemacht habe, fällt nun erst auf. Bei der Ausführung der Abfrage
kommt als Ergebnis folgendes heraus (nur Überschriften, Daten sind nicht wichtig):
--entfernt--
Wie man sehen kann, habe ich verschiedene Überschriften doppelt drin, leider auch "collector_ID". Die erste Spalte "collector_ID" beinhaltet eine UUID, die zweite Überschrift "collector_ID" stammt aus der Verbindungstabelle "conn_coll_pay" und beinhaltet die Datensatz-ID des Collectors.
Ich frage in einem PHP-Script die Datensätze zum Anzeigen einer Tabelle mittels
ab und hole mir dann die Inhalte der Spalten jeweils mittels
Soweit alles super, nur: die UUID wird nicht abgefragt, denn
beinhaltet den Wert aus der Spalte 'conn_coll_pay'.'collector_ID'.
Wie komme ich (hoffentlich) ohne großen Aufwand an die UUID? In MS-Access konnte man die Tabelle mit angeben, aus der man den Wert haben wollte.
Wie frage ich in PHP so etwas ab wie
?
Ich habe das oben genannte schon versucht, allerdings ohne Erfolg. Wie macht man's richtig? Oder:
gibt es eine Möglichkeit, sich die Felder der Tabelle "conn_coll_pay" in der MySQL-Abfrage ausblenden zu lassen?
Danke im Voraus,
Denise
ich bin Denise, bin über Fuffzich und beschäftige mich schon eine Weile mit PHP, würde mich aber immernoch als Anfängerin bezeichnen. Nun stehe ich vor einen Problem und hoffe, eine einfache Lösung zu finden, die nicht heisst "benenne das Feld um"...

Ich habe in MySQL eine relationale Datenbank gebaut. Ich habe drei Tabellen, eine beinhaltet eine Liste mit so genannten Collectoren, die haben zwar eine eindeutige ID (UUID), allerdings habe ich dennoch eine Datensatz ID hinzugefügt, um die Verknüpfung zu vereinfachen. Die zweite Tabelle beinhaltet eine Liste der über die Collectoren getätigten Zahlungen, hier ebenfalls vorhanden eine ID. Die dritte Tabelle verbindet nun in einem Datensatz die ID der Collectoren mit der ID der Zahlungen. Das klappte auch alles ganz gut, bis ich auf die Idee kam, mit die UUID, in der Tabelle "collectors" anzeigen lassen zu wollen, weil ich die gelegentlich brauche. Ich füge hier mal ein Bild der Relationen und Tabellen ein:

Das System läuft seit Jahren gut. Dass ich allerdings bei der Vergabe der Feldnamen Mist gemacht habe, fällt nun erst auf. Bei der Ausführung der Abfrage
Code:
SELECT * FROM `payments` , `collectors` , `conn_coll_pay` WHERE `collectors`.`collector_ID` != ''AND `conn_coll_pay`.`collector_ID` = `collectors`.`ID` AND `conn_coll_pay`.`payment_ID` = `payments`.`ID` ORDER BY `collectors`.`name` ASC;
kommt als Ergebnis folgendes heraus (nur Überschriften, Daten sind nicht wichtig):
--entfernt--
Wie man sehen kann, habe ich verschiedene Überschriften doppelt drin, leider auch "collector_ID". Die erste Spalte "collector_ID" beinhaltet eine UUID, die zweite Überschrift "collector_ID" stammt aus der Verbindungstabelle "conn_coll_pay" und beinhaltet die Datensatz-ID des Collectors.
Ich frage in einem PHP-Script die Datensätze zum Anzeigen einer Tabelle mittels
PHP:
$zeile = mysql_fetch_array($db_erg,MYSQL_ASSOC);
PHP:
$variable = $zeile['spaltenüberschrift'];
Soweit alles super, nur: die UUID wird nicht abgefragt, denn
PHP:
$ID=$zeile['collector_ID'];
Wie komme ich (hoffentlich) ohne großen Aufwand an die UUID? In MS-Access konnte man die Tabelle mit angeben, aus der man den Wert haben wollte.
Wie frage ich in PHP so etwas ab wie
PHP:
$collID = $zeile('collectors'.'collector_ID');
Ich habe das oben genannte schon versucht, allerdings ohne Erfolg. Wie macht man's richtig? Oder:
gibt es eine Möglichkeit, sich die Felder der Tabelle "conn_coll_pay" in der MySQL-Abfrage ausblenden zu lassen?
Danke im Voraus,
Denise
Zuletzt bearbeitet von einem Moderator: