Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Temporary-Table zum Weiterreichen von Daten (https://www.delphipraxis.net/83636-temporary-table-zum-weiterreichen-von-daten.html)

faux 5. Jan 2007 09:59

Datenbank: MySQL • Version: 5.0 • Zugriff über: PHP

Temporary-Table zum Weiterreichen von Daten
 
Hallo!

Ich will über eine DropDown-Box (HTML: Select) mehrere Werte übergeben. Genaugenommen eine Kombination aus zwei IDs. Das geht bekanntlich nicht, da es nur eine value Eigenschaft geben darf. Man könnte das ganze jetzt per Trennsymbol lösen, also value="4,2" oder values="4|2". Das möchte ich aber eigentlich aus mehreren Gründen nicht (sieht nicht gut aus; man bräuchte zusätzliche Überprüfung, ob diese Kombination erlaubt ist; etc.).
Jedenfalls dachte ich jetzt an eine Tabelle, in der für jede Kombination eine ID angelegt wird, welche dannüber value übergeben wird. Meine Frage: Sollte ich hierfür eine TEMORARY-Table oder eine "normale" Tabelle verwenden? Die Daten werden eigentlich nur für ein paar Formulare benötigt, aber immer auf einer Seite (die Daten werden also per POST und GET weitergereicht). Ist hier eine TEMPORARY-Table überhaupt möglich?

Grüße
Faux

faux 7. Jan 2007 11:32

Re: Temporary-Table zum Weiterreichen von Daten
 
Eine Temporäre Tabelle wird doch von MySQL nachdem die Verbindung geschlossen wird (mysql_close()) wieder gelöscht, soweit ich das der Dokumentation entnommen habe. Wie kann ich die Tabelle dann zwischen den Formularen bestehend erhalten? Könnte ich die Verbdinungs-ID weitergeben und die Verbindung dann nicht neu aufbauen, sondern einfach weiterverwenden? Gibt es eine andere (akzeptable) Lösung?

Grüße
Faux

faux 8. Jan 2007 19:59

Re: Temporary-Table zum Weiterreichen von Daten
 
Vl. sollte ich meine Frage anders stellen:
Temporäre Tabellen werden von MySQL nachdem die aktuelle Verbindung getrennt wird, wieder verworfen.
Wenn ich in PHP eine Seite wechsle, wird die Verbindung getrennt und neu aufgebaut --> Temporäre Tabellen werden gelöscht.
Gibt es eine Möglichkeit diese zu Erhalten? Also die Verbindung z. B. nicht zu trennen, sondern fortzusetzen?

mkinzler 8. Jan 2007 20:01

Re: Temporary-Table zum Weiterreichen von Daten
 
Indem du eine persistente Datenbankverbindung aufbausr (mysql_pconnect())

faux 8. Jan 2007 20:25

Re: Temporary-Table zum Weiterreichen von Daten
 
Danke für die Antwort!

PHP Documentation
When connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Wie "weiß" PHP welche Verbindung es wieder aufnehmen muss, wenn mehrere offene Verbindungen zur Verfügung stehen? Wenn z. B. mehrere User gleichzeitig mein Formular absenden, entstehen mehrere offene Verbindungen; wie weiß PHP, welche dieser Verbindungen zuvor verwendet wurde? Wenn nämlich eine falsche Verbindung wiederaufgenommen wird, so kann es dazukommen, dass die Temporäre Tabelle die falschen Inhalte aufweißt.

Grüße
Faux

mkinzler 8. Jan 2007 20:26

Re: Temporary-Table zum Weiterreichen von Daten
 
Ich vermute mal, daß er die Verbindung an die Session hängt.

faux 8. Jan 2007 20:46

Re: Temporary-Table zum Weiterreichen von Daten
 
Naja, das wäre ein wichtiger Punkt. Was ist wenn ich keine Session hätte?
Weiß jemand genaueres darüber? Die PHP-Doku sagt nicht mehr. :(

Grüße
Faux

mkinzler 8. Jan 2007 20:48

Re: Temporary-Table zum Weiterreichen von Daten
 
Wenn du dich nicht auf den Automatismus verlassen willst, kannst du die Verbindung auch in die Session übernehmen.

Christian Seehase 8. Jan 2007 20:54

Re: Temporary-Table zum Weiterreichen von Daten
 
Moin Faux,

Zitat:

Zitat von Faux
man bräuchte zusätzliche Überprüfung, ob diese Kombination erlaubt ist

wozu dass denn?
Du wählst doch den Wert mittels der DropDown-Liste aus. :gruebel:

Solltest Du jetzt vor dem Problem stehen, dass diese Werte an verschiedenen Stellen benötigt werden, und Du nur verhindern willst, dass Du Dich vertippst:
In ASP lege ich mir für solche Werte eine projektglobale Include-Datei mit entsprechenden "Konstanten" an, die dann in jedes Script eingebunden wird.
Vielleicht lässt sich das in PHP ja auch so abbilden (PHP kenne ich nicht)

faux 8. Jan 2007 21:50

Re: Temporary-Table zum Weiterreichen von Daten
 
Hallo Christian!
Folgende Situation:
In meinem Skript wird ein Datum durch Wochentag und Stunde definiert (z. B. 1|3 wäre Montag 10:00-10:50, 3|1 wäre Mittwoch 8:00-8:50).
In der Drop-Down soll der User ein Datum auswählen können. Hier kommen die zwei Werte ins Spiel: Wochentag und Stunde.

Zusätzliches Problem:
Je nach Berechtigung kann der User nur bestimmte Wochentags-Stunden-Kombinationen auswählen. Wenn ich an das Skript sowohl Wochentag wie auch Stunde sende, muss ich nochmals überprüfen, ob der User die Berechtigung hat, diese Kombination auszuwählen. Ich dachte mir, ich cache die Berechtigungen, die ja bereits beim Erstellen der DropDown-Liste aus der DB gezogen werden müssen, in einer Temporären Tabelle; ich schreibe alle möglichen Kombinationen in die Tabelle und vergebe jeder Kombination eine ID und übergebe dem Skript nur die ID; sobald die ID in der Temporären Tabelle ist, hat der User die Berechtigung.

Gefahr:
Wenn jetzt (hier kommt meine vorherige Frage ins Spiel) die falsche MySQL-Session fortgesetzt wird, so habe ich eine falsche Temoräre Tabelle, und somit passen die gecachten Rechte nicht mit dem User überein.

Zitat:

Zitat von mkinzler
Wenn du dich nicht auf den Automatismus verlassen willst, kannst du die Verbindung auch in die Session übernehmen.

Ja, das ist eine logische Schlussfolgerung. :mrgreen:
Werde ich mal testen. Danke sehr.

Grüße
Faux


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:38 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz