Seite 1 von 1

Wie funktioniert die neue listview type=sql ?

Verfasst: Sa 17. Nov 2018, 14:13
von AndreasWitt
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

Re: Wie funktioniert die neue listview type=sql ?

Verfasst: Mo 19. Nov 2018, 14:02
von mokraemer
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!

Re: Wie funktioniert die neue listview type=sql ?

Verfasst: Mo 19. Nov 2018, 22:12
von AndreasWitt
@Marc: kannst du mal bitte ein Beispiel schreiben?

Re: Wie funktioniert die neue listview type=sql ?

Verfasst: Mo 19. Nov 2018, 23:10
von mokraemer

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>

Re: Wie funktioniert die neue listview type=sql ?

Verfasst: So 3. Nov 2019, 20:22
von AndreasWitt
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

Re: Wie funktioniert die neue listview type=sql ?

Verfasst: So 3. Nov 2019, 22:33
von mokraemer
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!