we:listview type="sql" - defekt oder Fehler im Code?

Fragen zum Erstellen von Templates für webEdition.
mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

we:listview type="sql" - defekt oder Fehler im Code?

Beitragvon mediavantis » Do 8. Apr 2021, 17:55

Hallo zusammen,
in einer WE 9.0.7.1 (aktuelle Nightly)
habe ich aus einer 8er Version folgendes übernommen (da funktionierte es einwandfrei):

Code: Alles auswählen

<we:var name="UserID" nameto="MID" to="global" />
<we:listview type="sql" name="statusUser" select="*" from="tblWebUser" where="id=$MID">
	<we:repeat>
		<we:field name="Username" />
	</we:repeat>
</we:listview>
Hier sagt mir das Fehlerlog folgendes:

MYSQL-ERROR
Fehler: 1064
Detail: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
Info:
Query: SELECT * FROM tblWebUser WHERE id=

MYSQL-ERROR
Fehler: 1064
Detail: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LIMIT 0,100000000' at line 1
Info:
Query: SELECT * FROM tblWebUser WHERE id= LIMIT 0,100000000

Also trage ich testweise die mir bekannte ID hart rein und checke nochmals:

Code: Alles auswählen

<we:var name="UserID" nameto="MID" to="global" />
<we:listview type="sql" name="statusUser" select="*" from="tblWebUser" where="id=94">
	<we:repeat>
		<we:field name="Username" />
	</we:repeat>
</we:listview>
Daraufhin folgende Fehlermeldung:
Return value of we_listview_sql::f() must be of the type string, int returned

Also wandele ich vor der LV die Variable in einen String um:

Code: Alles auswählen

<we:var name="UserID" nameto="MID" to="global" />
<?php
$newMID = strval($GLOBALS['MID']);
?>
<we:listview type="sql" name="statusUser" select="*" from="tblWebUser" where="id=$newMID">
	<we:repeat>
		<we:field name="Username" />
	</we:repeat>
</we:listview>
Das will WE auch nicht haben und meldet trotzdem folgendes:
Return value of we_listview_sql::f() must be of the type string, int returned

Habe ich doch einen Fehler eingebaut, der mir partout nicht auffallen will, oder ist es vielleich doch ein Bug in der LV type"sql"?

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

Re: we:listview type="sql" - defekt oder Fehler im Code?

Beitragvon mokraemer » Do 8. Apr 2021, 19:26

Mit

Code: Alles auswählen

<we:var name="UserID" nameto="MID" to="global" />
mußt du

Code: Alles auswählen

<we:listview ..where="\$MID">
schreiben.

Die Meldung
Return value of we_listview_sql::f() must be of the type string, int returned
ist ein kleiner Bug, hab ich grad korrigiert (wg. Uploader Bug am besten bis Montag warten)
webEdition-Kern-Entwickler

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: we:listview type="sql" - defekt oder Fehler im Code?

Beitragvon mediavantis » Fr 9. Apr 2021, 10:07

@mokraemer

Vielen Dank für die Antwort. Das aktuelle Nightly habe ich eingespielt.

Allerdings schlägt diese von Dir angegebene Vorgehensweise leider auch fehl:

Code: Alles auswählen

<we:listview ..where="\$MID">
Wenn ich das richtig verstanden habe, benötigt die WHERE doch eine Angabe, aus welcher Tabellenspalte er den Wert heranziehen soll!?
Das muss ja nicht zwingend die ID sein, sondern könnte ja auch (bezogen auf die Tabelle tblWebUser) die Spalte Username sein.

Muss dann nicht zwangsläufig folgendes stehen?

Code: Alles auswählen

<we:listview ..where="id=xx"> //oder
<we:listview ..where="Username=xx">
Ich bin jetzt mal alle Möglichkeiten durchgegangen, und zwar:

Code: Alles auswählen

<we:listview ..where="$MID"> //schlägt fehl
<we:listview ..where="id=\$MID"> //schlägt fehl
<we:listview ..where="id=MID"> //schlägt fehl

<we:listview ..where="id=94"> //funktioniert
Könnte es nicht doch sein, dass das Attribut "where" eine Variable nicht verarbeiten kann?

NilSole
Senior Member
Beiträge: 303
Registriert: Mi 27. Mär 2019, 15:28

Re: we:listview type="sql" - defekt oder Fehler im Code?

Beitragvon NilSole » Fr 9. Apr 2021, 13:25

Hallo Ulrich,

Seit WE9 muss vor globalen Variablen innerhalb von WE-Tags ein '\' stehen (das war früher auch schon so gedacht, ging aber trotzdem).

Folglich sollte es so laufen

Code: Alles auswählen

<we:var name="UserID" nameto="MID" to="global" />
<we:listview type="sql" name="statusUser" select="*" from="tblWebUser" where="id=\$MID">
	<we:repeat>
		<we:field name="Username" />
	</we:repeat>
</we:listview>

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: we:listview type="sql" - defekt oder Fehler im Code?

Beitragvon mediavantis » Fr 9. Apr 2021, 13:32

Hallo Nils,

schon klar, und ich habe es ja getestet:

Code: Alles auswählen

<we:listview ..where="$MID"> //schlägt fehl
<we:listview ..where="id=\$MID"> //schlägt fehl <----- siehe hier
<we:listview ..where="id=MID"> //schlägt fehl
<we:listview ..where="\$MID"> // auch diese Variante

<we:listview ..where="id=94"> //funktion
Aber es funktioniert nicht...

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

Re: we:listview type="sql" - defekt oder Fehler im Code?

Beitragvon mokraemer » Fr 9. Apr 2021, 14:25

@Urlich: ich hab doch geschrieben, das es dazu ein Update braucht.
webEdition-Kern-Entwickler

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: we:listview type="sql" - defekt oder Fehler im Code?

Beitragvon mediavantis » Fr 9. Apr 2021, 14:34

@mokraemer
Oh, ok, sorry,
Dann hatte ich Deine Antwort
ist ein kleiner Bug, hab ich grad korrigiert
wohl falsch interpretiert und angenommen, dass hättest du in diesem Moment schon in die Nightly.

Ok, ich warte ;-)

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

Re: we:listview type="sql" - defekt oder Fehler im Code?

Beitragvon mokraemer » Fr 9. Apr 2021, 16:27

ja, ist auch in der nightly. das fixt den we:field Fehler
webEdition-Kern-Entwickler

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: we:listview type="sql" - defekt oder Fehler im Code?

Beitragvon mediavantis » Fr 9. Apr 2021, 17:34

Vielen Dank!

mit der SVN 13102 klappt es jetzt prima!


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

Wer ist online?

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