Wie finde ich die ID eines Dokuments anhand eines anderen Datenfeldes?

Fragen zu PHP.
Fragen zu we:Tags bitte im Forum webEdition Templates erstellen (we:Tags) posten.
Matthias_
Junior Member
Beiträge: 13
Registriert: Fr 3. Jun 2011, 10:41

Wie finde ich die ID eines Dokuments anhand eines anderen Datenfeldes?

Beitragvon Matthias_ » Sa 18. Aug 2018, 01:24

Hallo,

Redakteure können beim Bearbeiten eines Dokumentes eine ID eingeben, um eine entsprechende externe Seite aufrufen lassen zu können (hier die ID eines Preisteils, Datenfeld we:input "preisteilid", z.B. "133").

Wie bekomme ich jetzt umgekehrt via PHP anhand des Datenfeldes "preisteilid" die ID des Dokuments heraus, das für "preisteilid" als Inhalt die "133" hat?

Alle Code-Beispiele, die ich bisher gefunden habe, gehen von einer vorhandenen ID des Dokumentes aus, aber die suche ich ja gerade anhand des Inhaltes eines anderen Dokumentenfeldes.

Hat jemand eine Idee?

Herzlichen Dank,

Matthias

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Wie finde ich die ID eines Dokuments anhand eines anderen Datenfeldes?

Beitragvon mokraemer » Sa 18. Aug 2018, 01:47

Das ist ein etwas ungewöhnlicher Ansatz.
Du suchst also die Rückrichtung. Das geht idr. über eine listview, denn natürlich kann es ja auch mehr als ein Dokument geben in dem das drin steht.

Code: Alles auswählen

<we:field name="preisteilid" to="global"/>
<we:condition name="searchPreis">
    <we:conditionAdd field="preisteilid" value="\$preisteilid" compare="="/>
 </we:condition>
<we:listview type="document" condition="searchPreis">
</we:listview>
So müßte das eigentlich passen. Hab es aber nicht getestet.
webEdition-Kern-Entwickler

Matthias_
Junior Member
Beiträge: 13
Registriert: Fr 3. Jun 2011, 10:41

Re: Wie finde ich die ID eines Dokuments anhand eines anderen Datenfeldes?

Beitragvon Matthias_ » Sa 18. Aug 2018, 01:55

Danke für die schnelle Antwort.

Das Datenfeld "preisteilid" sollte eigentlich immer eindeutig sein. Aber ich werde Deinen Ansatz einmal testen, danke!

Matthias_
Junior Member
Beiträge: 13
Registriert: Fr 3. Jun 2011, 10:41

Re: Wie finde ich die ID eines Dokuments anhand eines anderen Datenfeldes?

Beitragvon Matthias_ » Sa 18. Aug 2018, 01:59

Eine reine PHP-Abfrage über die Datenbank gibt es dafür aber nicht?

So etwas wie?

echo f("SELECT ID FROM " . CONTENT_TABLE . " WHERE preisteilid=14");

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Wie finde ich die ID eines Dokuments anhand eines anderen Datenfeldes?

Beitragvon mokraemer » Sa 18. Aug 2018, 12:48

Zum einen würde ich dir empfehlen die Eingabe nicht per ID zu machen, sondern auf ein href o.ä. zu gehen. Das ist dann auch etwas komfortabler für den Bearbeiter.
Natürlich kannst du auch die DB direkt befragen, dann bist du nur nicht mehr wirklich updatesicher, denn die Datenstrukturen da können sich durchaus mal ändern. Generell ist die Suche, ohne weitere Einschränkungen nach einem Datenfeld nicht sehr effizient.
webEdition-Kern-Entwickler

Matthias_
Junior Member
Beiträge: 13
Registriert: Fr 3. Jun 2011, 10:41

Re: Wie finde ich die ID eines Dokuments anhand eines anderen Datenfeldes?

Beitragvon Matthias_ » So 19. Aug 2018, 23:40

Vielen Dank. Leider kann ich nicht ganz nachvollziehen, was Du mit der Eingabe per "href" und der Vereinfachung für den Bearbeiter meinst. Die Zahl ist hier Teil des Pfades zur externen Seite. Einfach als die Zahl hier einzugeben, geht es eigentlich nicht.

Ich brauche auch nur die ID bzw. den Pfad eines Dokuments, das einen bestimmten Wert im Datenfeld "preisteilid" hat, da es sich um eine Verlinkung aus einem extrenen Script heraus handelt, das lässt sich aktuell anders leider nicht regeln.

Insgesamt geht es hier um eine Verbindung mit einer vollkommen unabhängigen externen Software, so dass wir leider an die technischen Gegebenheiten gebunden sind. Deshalb auch der rückwärtige Weg über die Datenfelder.

Trotzdem vielen Dank für die schnellen Antworten!

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Wie finde ich die ID eines Dokuments anhand eines anderen Datenfeldes?

Beitragvon mokraemer » Mo 20. Aug 2018, 10:45

Vielen Dank. Leider kann ich nicht ganz nachvollziehen, was Du mit der Eingabe per "href" und der Vereinfachung für den Bearbeiter meinst. Die Zahl ist hier Teil des Pfades zur externen Seite. Einfach als die Zahl hier einzugeben, geht es eigentlich nicht.
Ok, verstehe.

Wenn es PHP sein soll/muß, kannst du es so raussuchen:

Code: Alles auswählen

$myID=1234;
$data=getHash('SELECT f.Path,c.DID FROM '.CONTENT_TABLE.' c JOIN '.FILE_TABLE.' f ON f.ID=c.DID WHERE c.DocumentTable="tblFIle" AND c.nHash=md5("preisteilid") AND c.Dat="'.$myID.'" LIMIT 1');
Derzeit speichern Eingabefelder ihre Werte in Dat, nummerische Angaben stehen sonst eigentlich in BDID, evtl. ändert sich das wir dann bei Eingabe von Zahlen diese auch in BDID speichern, weil hier die Speicherung effizienter ist. Also bei diese Lösung solltest du dann immer unsere Versionshinweise genau lesen.
webEdition-Kern-Entwickler

Matthias_
Junior Member
Beiträge: 13
Registriert: Fr 3. Jun 2011, 10:41

Re: Wie finde ich die ID eines Dokuments anhand eines anderen Datenfeldes?

Beitragvon Matthias_ » Di 21. Aug 2018, 01:42

Wow, kein Wunder, dass ich hier an meine Grenzen stosse. Werde versuchen , dass an die WE-Version des Kunden anzupassen.

Herzlichen Dank erstmal!

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Wie finde ich die ID eines Dokuments anhand eines anderen Datenfeldes?

Beitragvon mokraemer » Di 21. Aug 2018, 13:28

deshalb ist ja auch die reine WE-Lösung zu bevorzugen, auch wenn diese etwas mehr Overhead hat. Der Kode von mir funktioniert auch erst ab WE 8, davor braucht man noch ein JOIN mehr.
webEdition-Kern-Entwickler


Zurück zu „PHP“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste