Zum Inhalt springen

split current:1 und select

Erstellt am 13. April 2008 · 6 Antworten · letzte Antwort am 13. April 2008

Tags: Frage

kurtzman ·

Hallo,

ich habe ein Problem mit diesem Script. Es soll den String "teaser1,teaser2,teaser3" zerlegen und an die Select-Anweisung übergeben. Die Table tx_teaser_content enhält die Felder teaser, description u. destination. Ich möchte also für jeden der 3 Teaser die description und destination Felder haben und daraus Teaser mit Links erzeugen.
Das ganze wird noch ausgebaut und dann macht das auch Sinn (sonst könnte man es ja auch über Text&Bild lösen). Ich brauche das wirklich so, bitte keine Vorschläge wie man das mit einem Texttyp lösen kann etc.

Ich schätze, dass das Problem an der Select-Anweisung liegt.
Das evtl. die gesplitteten Teile (teaser1, teaser2, teaser3) nicht richtig übergeben werden. Es wird kein Content zurück gegeben.

Sieht jemand den Fehler?

tmp.maintpl.subparts {
	teaser = COA
	teaser {
		10 = TEXT
		10.data = {$tpl.teaser.ids}
		10.split {
			token = ,
			cObjNum = 1
			1 {
				10 = CONTENT
				10 {
					table = tx_teaser_content
					select {
						pidInList = 13 //sysfolder mit records
						andWhere.current = 1
						andWhere.wrap = teaser=|
					}
					renderObj = TEXT
					renderObj {
						field = teaser
						wrap = |,
					}
				}
			}
		}
	}
}

page.10.subparts {
	teaser < tmp.maintpl.subparts.teaser
}
just2b ·

Hallo,

schalt mal im installtool sqldebug ein, dann siehst schon mal ob der select falsch ist

georg

kurtzman ·

Danke für den Tipp. Im Installtool steht:

If set, then database queries that fails are outputted in browser.

Ich sehe nichts im Browser - also sollte die Anweisung stimmen. Gibt es noch mehr logging Möglichkeiten. Gibt es eine Zusammenfassung aller Debug-Einstellungen?

kurtzman ·

Hab absichtlich einen Fehler gemacht - das logging funktioniert. Die Anweisung sollte also zumindest keinen Fehler werfen.
Kann man das SQL Statement, dass tatsächlich an die Datenbank gesendet wird abfangen?

kurtzman ·

Ergänzung zum ts:

es heißt nun:

select {
 pidInList = 13 //sysfolder mit records
 where.current = 1
 where.wrap = teaser=|
}
kurtzman ·

Fehler gefunden:

select {
 pidInList = 13 //sysfolder mit records
 andWhere.current = 1
 andWhere.wrap = teaser="|"
}

da die gesplitteten teile (teaser1, usw...) Strings sind müssen wohl Anführungszeichen um die Pipe.

Ich wusste nicht, dass das machen muss. Dachte das übernimmt der Database Abstraction Layer.

just2b ·
kurtzman schrieb

Ich wusste nicht, dass das machen muss. Dachte das übernimmt der Database Abstraction Layer.

der ist da, damit das auch unter mssql funktioniert.

georg