Listview ergibt keine ergebnisse

Fragen zum Erstellen von Templates für webEdition.
Benutzeravatar
kay
Senior Member
Beiträge: 285
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Listview ergibt keine ergebnisse

Beitragvon kay » Di 26. Nov 2019, 16:45

Nach dem Update auf 8.1. werden die Objekte nicht mehr im listview dargestellt.

Woran kan das liegen?

Es gibt folgende Fehlermeldungen:

Code: Alles auswählen

Error type:	
SQL Error
Error message:	
MYSQL-ERROR
Fehler: 1054
Detail: Unknown column 'ob1.object_5' in 'on clause'
Info:
Query: SELECT of.ID  FROM tblObject_6 AS ob6 LEFT JOIN tblObjectFiles of5 ON (of5.ID=ob1.object_5 AND of5.Published>0) LEFT JOIN tblObject_5 AS ob5 ON (ob5.OF_ID=of5.ID) LEFT JOIN tblObjectFiles of3 ON (of3.ID=ob6.object_3 AND of3.Published>0) LEFT JOIN tblObject_3 AS ob3 ON (ob3.OF_ID=of3.ID) LEFT JOIN tblObjectFiles of1 ON (of1.ID=ob6.object_1 AND of1.Published>0) LEFT JOIN tblObject_1 AS ob1 ON (ob1.OF_ID=of1.ID) JOIN tblObjectFiles `of` ON of.ID=ob6.OF_ID WHERE of.IsSearchable=1 AND  (of.Workspaces="" OR FIND_IN_SET(0,of.Workspaces))  AND  ( of.Published>0 )  GROUP BY of.ID 

Code: Alles auswählen

Error type:	
SQL Error
Error message:	
MYSQL-ERROR
Fehler: 1054
Detail: Unknown column 'Thema' in 'order clause'
Info:
Query: SELECT of.ID AS OF_ID,ob3.`input_Themen` AS we_title,of.ID AS we_ID,of.ParentID AS we_ParentID,of.Text AS we_Text,of.IsFolder AS we_IsFolder,of.ContentType AS we_ContentType,of.CreationDate AS we_CreationDate,of.ModDate AS we_ModDate,of.Published AS we_Published,of.Path AS we_Path,of.Url AS we_Url,of.TriggerID AS we_TriggerID,of.CreatorID AS we_CreatorID,of.ModifierID AS we_ModifierID,of.RestrictOwners AS we_RestrictOwners,of.Owners AS we_Owners,of.OwnersReadOnly AS we_OwnersReadOnly,of.Workspaces AS we_Workspaces,of.TableID AS we_TableID,of.Category AS we_Category,of.ClassName AS we_ClassName,of.IsClassFolder AS we_IsClassFolder,of.IsSearchable AS we_IsSearchable,of.Charset AS we_Charset,of.Language AS we_Language,of.WebUserID AS we_WebUserID,ob3.`input_Themen` AS `Themen`,ob3.`OF_ID` AS `ID` FROM tblObject_3 AS ob3 JOIN tblObjectFiles `of` ON of.ID=ob3.OF_ID WHERE of.IsSearchable=1 AND  (of.Workspaces="" OR FIND_IN_SET(0,of.Workspaces))  AND  ( of.Published>0 )  ORDER BY `Thema` LIMIT 0,100000000
Liebe Grüße
Kay-Rafael Stemmer
http://leitbild.biz

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

Re: Listview ergibt keine ergebnisse

Beitragvon mokraemer » Di 26. Nov 2019, 19:40

mit welcher classID machst du denn die Listview mit 1 oder 6?
Bei der 2. LV hast du wohl die Spalte von "Thema" auf "Themen" geändert - wenn eh nach Titel sortieren willst, dann nimm als Sortierung we_title
webEdition-Kern-Entwickler

Benutzeravatar
kay
Senior Member
Beiträge: 285
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Re: Listview ergibt keine ergebnisse

Beitragvon kay » Di 26. Nov 2019, 23:16

Nach ID6

Code: Alles auswählen

<we:listview name="Themen" type="object" classid="6" triggerid="871" rows="50" order="random()">
		<we:repeat>
				<we:ifFieldNotEmpty match="Bild" type="img">
					<we:field type="img" name="Bild" hyperlink="true" thumbnail="250" />
					<we:else />
					<img src="/bilder/weiss.jpg">
				</we:ifFieldNotEmpty>
		</we:repeat>
</we:listview>
Liebe Grüße
Kay-Rafael Stemmer
http://leitbild.biz

Benutzeravatar
eSKa
Senior Member
Beiträge: 548
Registriert: Do 1. Jan 1970, 02:00

Re: Listview ergibt keine ergebnisse

Beitragvon eSKa » Mi 27. Nov 2019, 11:16

... auch wenn das jetzt nichts mit dem Fehlerprotokoll zu tun hat.

Heißt "ifFieldNotEmpty" jetzt nicht "ifNotFieldEmpty"

Gruß
eSKa

piXel relations GmbH | Agentur für Online-Kommunikation
Luxemburger Str. 93 | 50354 Hürth
Telefon 0 22 33 / 99 66 81
www.pixelrelations.de | info@pixelrelations.de

Benutzeravatar
kay
Senior Member
Beiträge: 285
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Re: Listview ergibt keine ergebnisse

Beitragvon kay » Mi 27. Nov 2019, 11:34

Das ist an mir vorbei gegangen – hat aber leider keinen Einfluss auf das Problem, daß der liestview keine Ergebnisse liefert.
eSKa hat geschrieben:
Mi 27. Nov 2019, 11:16
... auch wenn das jetzt nichts mit dem Fehlerprotokoll zu tun hat.

Heißt "ifFieldNotEmpty" jetzt nicht "ifNotFieldEmpty"

Gruß
eSKa
Liebe Grüße
Kay-Rafael Stemmer
http://leitbild.biz

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

Re: Listview ergibt keine ergebnisse

Beitragvon mokraemer » Mi 27. Nov 2019, 13:06

ich hab dazu mal eben was in das nightly eingespielt (rev 10877).
Eigentlich dürfte das keinen Unterschied machen. Kannst du das mal testen. Sonst wäre zum einen ein Bugreport und ein Zugang zum System hilfreich - sowas läßt sich schwer nachstellen, wenn man nicht die Konkrete Datenstruktur kennt.
Die Query ist grundsätzlich richtig - nur stimmt die Reihenfolge nicht; deshalb motzt dann die DB.
webEdition-Kern-Entwickler

Benutzeravatar
lightningbug
Junior Member
Beiträge: 2
Registriert: Do 5. Dez 2019, 13:17
Wohnort: Siegen

Re: Listview ergibt keine ergebnisse

Beitragvon lightningbug » Do 5. Dez 2019, 14:36

kay hat geschrieben:
Di 26. Nov 2019, 16:45
Nach dem Update auf 8.1. werden die Objekte nicht mehr im listview dargestellt.

Woran kan das liegen?

Es gibt folgende Fehlermeldungen:

Code: Alles auswählen

Error type:	
SQL Error
Error message:	
MYSQL-ERROR
Fehler: 1054
Detail: Unknown column 'ob1.object_5' in 'on clause'
Info:
Query: SELECT of.ID  FROM tblObject_6 AS ob6 LEFT JOIN tblObjectFiles of5 ON (of5.ID=ob1.object_5 AND of5.Published>0) LEFT JOIN tblObject_5 AS ob5 ON (ob5.OF_ID=of5.ID) LEFT JOIN tblObjectFiles of3 ON (of3.ID=ob6.object_3 AND of3.Published>0) LEFT JOIN tblObject_3 AS ob3 ON (ob3.OF_ID=of3.ID) LEFT JOIN tblObjectFiles of1 ON (of1.ID=ob6.object_1 AND of1.Published>0) LEFT JOIN tblObject_1 AS ob1 ON (ob1.OF_ID=of1.ID) JOIN tblObjectFiles `of` ON of.ID=ob6.OF_ID WHERE of.IsSearchable=1 AND  (of.Workspaces="" OR FIND_IN_SET(0,of.Workspaces))  AND  ( of.Published>0 )  GROUP BY of.ID 
Hallo,

eigentlich war ich auf der Suche nach einer Lösung, denn vermutlich haben wir genau das gleiche Problem. Das Problem ergab sich nach einer Aktualisierung von 6.4.1 auf 8.1.0 (zu den Zwischenversionen kann ich nichts sagen).

Durch die Verknüpfung mehrerer Objekte bzw. der Tabellen, baut webEdition bei Verwendung eines Listviews intern einen query mit LEFT JOIN über alle involvierten tblObject_X und tblObjectFiles -Tabellen. Diese joins werden wohl mithilfe eines krsort($matrix) in der Funktion makeSQLParts() in \webEdition\we\include\we_classes\listview\we_listview_objectBase.class.php "numerisch sortiert". Das auskommentieren kann dazu führen, dass die Datenbankabfrage funktioniert, dies kann aber event. in anderen Zusammenhängen zu Problemen führen.

Vermutlich wäre dies eine feine Stelle für einen Bugfix...

MfG
lightningbug :)

PS Dies ist mein erster Post. Bei Fragen oder Anm: Fragen :)
Beste Grüße
Ilja

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

Re: Listview ergibt keine ergebnisse

Beitragvon mokraemer » Do 5. Dez 2019, 19:13

Es gibt dazu auch bereits einen Fix im Nightly (8.1.0.1) NICHT devel!
Da sich sowas nicht ohne weiteres nachstellen läßt, weiß ich aber nicht ob der Fix komplett ist.
webEdition-Kern-Entwickler

Benutzeravatar
kay
Senior Member
Beiträge: 285
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Re: Listview ergibt keine ergebnisse

Beitragvon kay » Fr 6. Dez 2019, 11:21

Bei mir funktioniert es leider auch in der 8.1.0.1 (10966) nicht.
Soll ich dafür einen Bug eintragen?
mokraemer hat geschrieben:
Do 5. Dez 2019, 19:13
Es gibt dazu auch bereits einen Fix im Nightly (8.1.0.1) NICHT devel!
Da sich sowas nicht ohne weiteres nachstellen läßt, weiß ich aber nicht ob der Fix komplett ist.
Liebe Grüße
Kay-Rafael Stemmer
http://leitbild.biz

Benutzeravatar
lightningbug
Junior Member
Beiträge: 2
Registriert: Do 5. Dez 2019, 13:17
Wohnort: Siegen

Re: Listview ergibt keine ergebnisse

Beitragvon lightningbug » Fr 6. Dez 2019, 14:11

Vielleicht habe ich mich mit "Das auskommentieren kann dazu führen, dass die Datenbankabfrage funktioniert" nicht klar genug ausgedrückt...
In unserem Fall IST dies die "Lösung". Mit der vorsichtigen Formulierung möchte ich ausschließen, dass es bei anderen zu fiesen Abhängigkeiten kommt.

Hier noch ein Wenig "Futter" :)

$matrix beinhaltet ein Array, die Keys sind u.a. die "Objekttabellen", die Values beinhalten u.a. die JOIN-Anweisungen.

Auszug:
----------

Code: Alles auswählen

Array(
	[ID] => ...
    [we_object_3] => Array
        (
            [type] => object
            [table] => tblObject_4
            [classID] => 4
            [alias] => ob4
            [aliasf] => of3
            [joinClassID] => 3
            [join] => tblObject_3
            [on] => tblObjectFiles of3 ON (of3.ID=ob4.object_3 AND of3.Published>0) LEFT JOIN tblObject_3 AS ob3 ON (ob3.OF_ID=of3.ID)
        )
		
	[Irgendwas] => Array
        (
			...
        )
		
    [we_object_8] => Array
        (
            [type] => object
            [table] => tblObject_3
            [classID] => 3
            [alias] => ob3
            [aliasf] => of8
            [joinClassID] => 8
            [join] => tblObject_8
            [on] => tblObjectFiles of8 ON (of8.ID=ob3.object_8 AND of8.Published>0) LEFT JOIN tblObject_8 AS ob8 ON (ob8.OF_ID=of8.ID)
        )


	[Nochwas] => Array
        (
			...
        )
)
Nach dem Sortieren

Code: Alles auswählen

Array(
		
    [we_object_8] => Array
        (
            [type] => object
            [table] => tblObject_3
            [classID] => 3
            [alias] => ob3
            [aliasf] => of8
            [joinClassID] => 8
            [join] => tblObject_8
            [on] => tblObjectFiles of8 ON (of8.ID=ob3.object_8 AND of8.Published>0) LEFT JOIN tblObject_8 AS ob8 ON (ob8.OF_ID=of8.ID)
        )

    [we_object_3] => Array
        (
            [type] => object
            [table] => tblObject_4
            [classID] => 4
            [alias] => ob4
            [aliasf] => of3
            [joinClassID] => 3
            [join] => tblObject_3
            [on] => tblObjectFiles of3 ON (of3.ID=ob4.object_3 AND of3.Published>0) LEFT JOIN tblObject_3 AS ob3 ON (ob3.OF_ID=of3.ID)
        )
		
	...
)
Durch das Umsortieren erfolgt der Zugriff auf die Tabellen in der Reihenfolge des Suffix; bei uns konkret:

Code: Alles auswählen

SELECT of.ID AS OF_ID,of.ID AS we_ID,of.ParentID AS we_ParentID #,die anderen Felder...
FROM tblObject_4 AS ob4 
LEFT JOIN tblObjectFiles of9 ON (of9.ID=ob4.object_9 AND of9.Published>0) 
LEFT JOIN tblObject_9 AS ob9 ON (ob9.OF_ID=of9.ID) 
LEFT JOIN tblObjectFiles of8 ON (of8.ID=ob3.object_8 AND of8.Published>0) 
LEFT JOIN tblObject_8 AS ob8 ON (ob8.OF_ID=of8.ID) 
LEFT JOIN tblObjectFiles of7 ON (of7.ID=ob4.object_7 AND of7.Published>0) 
LEFT JOIN tblObject_7 AS ob7 ON (ob7.OF_ID=of7.ID) 
LEFT JOIN tblObjectFiles of5 ON (of5.ID=ob4.object_5 AND of5.Published>0) 
LEFT JOIN tblObject_5 AS ob5 ON (ob5.OF_ID=of5.ID) 
LEFT JOIN tblObjectFiles of3 ON (of3.ID=ob4.object_3 AND of3.Published>0) 
LEFT JOIN tblObject_3 AS ob3 ON (ob3.OF_ID=of3.ID) 
JOIN tblObjectFiles `of` 
ON of.ID=ob4.OF_ID 
WHERE  ( of.Published>0 )  AND (ob4.OF_ID =123) 
GROUP BY of.ID 
Dieser Query kann nicht funktionieren. "ON (of8.ID=ob3.object_8" führt zu einem Zugriff auf "ob3", diese Tabelle steht aber am Ende der Anweisung.

Ohne das Sortieren ist alle i.O.:

Code: Alles auswählen

SELECT of.ID AS OF_ID,of.ID AS we_ID,of.ParentID AS we_ParentID #,die anderen Felder...
FROM tblObject_4 AS ob4 
LEFT JOIN tblObjectFiles of3 ON (of3.ID=ob4.object_3 AND of3.Published>0) 
LEFT JOIN tblObject_3 AS ob3 ON (ob3.OF_ID=of3.ID) 
LEFT JOIN tblObjectFiles of8 ON (of8.ID=ob3.object_8 AND of8.Published>0) 
LEFT JOIN tblObject_8 AS ob8 ON (ob8.OF_ID=of8.ID) 
LEFT JOIN tblObjectFiles of5 ON (of5.ID=ob4.object_5 AND of5.Published>0) 
LEFT JOIN tblObject_5 AS ob5 ON (ob5.OF_ID=of5.ID) 
LEFT JOIN tblObjectFiles of9 ON (of9.ID=ob4.object_9 AND of9.Published>0) 
LEFT JOIN tblObject_9 AS ob9 ON (ob9.OF_ID=of9.ID) 
LEFT JOIN tblObjectFiles of7 ON (of7.ID=ob4.object_7 AND of7.Published>0) 
LEFT JOIN tblObject_7 AS ob7 ON (ob7.OF_ID=of7.ID) 
JOIN tblObjectFiles `of` 
ON of.ID=ob4.OF_ID WHERE  ( of.Published>0 )  AND (ob4.OF_ID =123) 
GROUP BY of.ID 
Hoffe das hilft...
Beste Grüße
Ilja

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

Re: Listview ergibt keine ergebnisse

Beitragvon mokraemer » So 8. Dez 2019, 22:56

Hilft uns leider gar nicht.
Und es ist Zufall das dies ohne Sortierung klappt.
webEdition-Kern-Entwickler


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

Wer ist online?

Mitglieder in diesem Forum: MSN [Bot] und 2 Gäste