Wie funktioniert die neue listview type=sql ?

Fragen zum Erstellen von Templates für webEdition.
AndreasWitt

Wie funktioniert die neue listview type=sql ?

Beitragvon AndreasWitt » Sa 17. Nov 2018, 14:13

Hi,

ab webEdition 8.0.4 gibt es ja

Code: Alles auswählen

<we:listview type="sql">
Dazu folgende Fragen:
  • Muss beim Parameter "select" der Feldname genauso so wie in der DB (z. B. mit dem Präfix "input_") angegeben werden oder reicht es einfach die Feldnamen wie bei <we:field/> anzugeben?
  • Wenn ich bei "select" den Präfix des Feldnamen angeben muss, kann ich dann per <we:field/> dann ohne das Präfix auf das Feld zugreifen?
  • Kann ich auch JOINS ausführen und wenn ja, soll ich die dem Parameter "from" übergeben?
  • Könnt ihr vielleicht ein paar Beispiele zur Verfügung stellen? Bzw. gibt es die bereits irgendwo?
Danke und Grüße,

Andreas

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

Re: Wie funktioniert die neue listview type=sql ?

Beitragvon mokraemer » Mo 19. Nov 2018, 14:02

der type sql fordert das du echtes SQL schreibst - KEINE Ersetzung - man ist für alles selbst verantwortlich. Danach kann die LV aber ganz normal benutzt werden. Die LV gab es vorher schon mal, sinnloser weise auf dem Object - vermutlich mal eine alte Erweiterung.
Klar kann man das auch einfach per php auf dem DB Objekt machen - auf diese Weise bleibt aber die normale WE-Struktur für Abfragen die sich sonst nicht machen liesen. Die LV sollte nur benutzt werden, wenn man weiß was man tut und der SQL-Teil ist natürlich nicht Updatesicher!
webEdition-Kern-Entwickler

AndreasWitt

Re: Wie funktioniert die neue listview type=sql ?

Beitragvon AndreasWitt » Mo 19. Nov 2018, 22:12

@Marc: kannst du mal bitte ein Beispiel schreiben?

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

Re: Wie funktioniert die neue listview type=sql ?

Beitragvon mokraemer » Mo 19. Nov 2018, 23:10

Code: Alles auswählen

<we:listview type="sql" select="*" from="tblContent" where="DID=123">
<we:repeat>
<we:field name="Name"/><we:field name="Dat"/>
</we:repeat>
</we:listview>
webEdition-Kern-Entwickler

AndreasWitt

Re: Wie funktioniert die neue listview type=sql ?

Beitragvon AndreasWitt » So 3. Nov 2019, 20:22

Habe noch weitere Fragen zu <we:listview type="sql">:
  • kann man auch GROUP BY und ORDER BY nutzen?
  • muss man bei Zugriff auf Objekt-Tabellen den Dateityp voranstellen, z.B. 'input_Eintrittsdatum' oder reicht 'Eintrittsdatum' so wie es im Objekt-Modul des WE-Backends angegeben wird?
Danke und Grüße, Andreas

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

Re: Wie funktioniert die neue listview type=sql ?

Beitragvon mokraemer » So 3. Nov 2019, 22:33

wie der Name es sagt:
das ist PLAIN-SQL und ja, man kann alles wie GROUP BY etc. in der where clause verarbeiten.
die Attribute select,from,where sind leglich für etwas mehr Übersicht in der Query da.
Der Vorteil der LV ist hier lediglich das man mit we-Tags die Daten dann abrufen kann und darüber iterieren. Für die Datensicherheit bei der Übergabe und Verarbeitung der Typen ist man hier völlig auf sich gestellt. Wer also

Code: Alles auswählen

$GLOBALS['xx']=$_REQUEST['select'];
<we:listview select="\$xx" from="test" where="1">
darf sich über eine SQL-Injection nicht wundern!
webEdition-Kern-Entwickler


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

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