Hallo Gemeine,
ich habe ein Problem mit dem select mittels TS. Derzeit versuche ich den Klickpfad auf der Webseite mit den Kategorien (kommen aus Ext) zu erweitern. Hier mein aktuelles TS:
25 = RECORDS
25 {
dontCheckPid = 1
tables = tx_proindustrydb_cat
source.data = GPvar:tx_proindustrydb_pi1|showCat
select {
pidInList = 2,17
selectFields = cat.title AS maincat, cat2.title AS subcat
leftjoin = tx_proindustrydb_cat AS cat2 ON ( cat.uid = cat2.parent_category )
}
conf.tx_proindustrydb_cat = COA
conf.tx_proindustrydb_cat {
10 = TEXT
10.field = maincat
10.required = 1
10.wrap = <li>| »</li>
20 = TEXT
20.field = subcat
20.required = 1
20.wrap = <li>| »</li>
}
}
Das Problem liegt meiner Meinung nach an selectFields. Dort sind die Felder angeben, welche ich aus der DB holen möchte. Allerdings scheint es mit "AS" nicht zu funktionieren. Jedenfalls bekomme ich darüber keine Ausgabe in den 2 Textobjekte.
Wenn ich stattdessen ohne "AS" arbeite funktioniert es nur in sofern, dass ich in beiden Textobjekte den gleichen Text ausgegeben bekomme.
Ich hoffe es kann jemand weiterhelfen.
Lg Christian
schaut eigentlich ok aus.
schalt doch mal sqldebug ein, produzier absichtlich einen fehler, dann siehst du genau die query wie sie aussieht, vielleicht hilft das schon mal
georg
Hallo just2b,
der Tipp mit dem sqlDebug war gar nicht so schlecht 🙂.
Bisher konnte ich 2 Fehler beseitigen. Soweit ich das aus der TSRef lesen konnte, hat das RECORDS-Object die Eigenschaft "select" nicht. Daher habe ich ein CONTENT-Objekt daraus gemacht. Das CONTENT-Objekt kennt allerdings die Eigenschaft "conf" nicht, so dass an dieser Stelle nun ein eigenes Objekt erzeugt wird.
Zum anderen war das SQL falsch, was ich mithilfe des sqlDebug beheben konnte.
Mein TS sieht nun wie folgt aus:
25 = CONTENT
25 {
table = tx_proindustrydb_cat
select {
begin = 0
max = 1
selectFields = tx_proindustrydb_cat.title,cat2.title AS subcat
andWhere {
cObject = COA
cObject {
10 = TEXT
10.data = GPvar:tx_proindustrydb_pi1|showCat
10.noTrimWrap = |(tx_proindustrydb_cat.uid=| |
20 = TEXT
20.data = GPvar:tx_proindustrydb_pi1|showCat
20.wrap = OR cat2.uid=|)
}
}
leftjoin = tx_proindustrydb_cat AS cat2 ON ( tx_proindustrydb_cat.uid = cat2.parent_category )
}
renderObj = COA
renderObj {
10 = TEXT
10.field = title
10.required = 1
10.wrap = <li>|1 »</li>
20 = TEXT
20.field = subcat
20.required = 1
20.wrap = <li>|2 »</li>
}
}
Allerdings funktioniert die Verarbeitung der Aliasnamen immer noch nicht.
Hat noch wer eine Idee?
Lg Christian
Hallo,
erstens: mach mal lieber ncoh ein intval dazu, sonst wird das ne böse sql injection und zum zweiten muss dir ein absichtlicher fehler ja das query dennoch geben und das im phpmyadmin getestet > wie schaut da das ergebnis aus?
Hallo,
habe den Fehler gefunden. Und zwar hat
pidInList = 2,17
gefehlt.
Nun funktioniert es, vielen Dank.
Bezüglich der SQL-Injection hast du natürlich recht. Kannst du mir einen Hinweis geben, wie das dort in das TS implementieren kann?
Jetzt schließt sich gleich noch eine Frage an. Wie schaffe ich es, die Punkte zu verlinken?
Derzeit habe ich folgendes ohne Erfolg probiert:
renderObj = COA
renderObj {
10 = TEXT
10.field = title
10.required = 1
10.typolink.parameter = 10
10.wrap = <li>| »</li>
20 = TEXT
20.if.value.field = uid
20.if.equals.data = GPvar:tx_proindustrydb_pi1|showCat
20.field = subcat
20.required = 1
20.wrap = <li>| »</li>
}
Hat jemand eine Idee warum der Link nicht erzeugt wird?
Ist zwar schon eine Weile her, aber nur der Form halber für TS'ler, die das gleiche Problem haben:
renderObj = COA
renderObj {
10 = TEXT
10.field = title
10.required = 1
10.typolink.parameter < .10
10.wrap = <li>| »</li>
20 = TEXT
20.if.value.field = uid
20.if.equals.data = GPvar:tx_proindustrydb_pi1|showCat
20.field = subcat
20.required = 1
20.wrap = <li>| »</li>
}
Statt
10.typolink.parameter = 10
muss es heißen
10.typolink.parameter < .10
Ciao,
Levy