[TYPO3-german] typoscript db query performance issue

Dr. Dieter Porth typo3 at mobger.de
Sat Dec 17 19:27:33 CET 2016


Hi Alex,

Ja, es war noch etwas früh heute morgen. 'where' hat doch ein stdWrap. 
Also kannst du mit Registern arbeiten.

lib.Machwas = COA

lib.machwas{

10 = LOAD_REGISTER

10 {

deinTitle.cObject < temp.newsTitle

deinTime.cObject = TEXT

deinTime.data = date:U

}

20 = CONTENT

20 {

..

where.stdWrap.dataWrap = (datetime >= '{REGISTER:deinTime}' AND deleted 
= '0' AND hidden = '0' AND title = '{REGISTER:deinTitle}')

..}

30 = RESTORE_REGISTER

So ungefähr sollte die Struktur aussehen.

Mit besten Grüßen

   Dieter

Am 17.12.2016 um 14:08 schrieb Alex B.:

> Vielen Dank für die Hinweise/Hilfe.
> Das Problem liegt leider nicht in der Syntax, diese ist ok, nur etwas 
> veraltet - "andWhere" ist deprecated wie ich nun gesehen habe. Ich 
> habe daher auf "where" umgestellt.
>
> Die Performance-Probleme werden offenbar von der Anzahl der MySQL-Rows 
> verursacht. Wenn ich "max" z.B. auf 10 stelle, ist die Anfrage wieder 
> schnell. Allerdings befinden sich in dem record-storage mit der 
> verwendeten pid (168) nur ca. 200 News-Items -- das sollte für einen 
> normalen db-query doch eigentlich sehr wenig sein?
>
> Mein Ziel ist es News-Items auszulesen deren Titel der selbe ist wie 
> der Titel der aktuell geöffneten News. Bisher hatte ich alle News die 
> einen anderen Titel haben später per jquery aus dem dom entfernt -- um 
> die Datenbankabfrage nun zu verbessern, möchte ich nun den Titel des 
> aktuell geöffneten News-Item per typoscript auslesen und in meine 
> Datenbankabfrage (where) einbinden.
> Das bekomme ich leider nicht hin. Hier mein aktueller Code:
>
> # den titel des aktuell geoeffneten news-items auslesen
> temp.newsTitle = RECORDS
> temp.newsTitle {
>  dontCheckPid = 1
>  tables = tx_news_domain_model_news
>  source.data = GP:tx_news_pi1|news
>  source.intval = 1
>  conf.tx_news_domain_model_news = TEXT
>  conf.tx_news_domain_model_news {
>    field = title
>    # htmlSpecialChars = 1
>  }
>  wrap = |
> }
> # for testing, das gibt den titel der aktuell geoeffenten news korrekt 
> aus
> # page.800 < temp.newsTitle
> # lib.dbquery, diese lib wird dann in ein powermail formular eingebunden
> lib.dbquery = CONTENT
> lib.dbquery {
>  table = tx_news_domain_model_news
>  select {         pidInList = 168
>    selectFields = title,datetime
>    recursive = 1
>    orderBy = datetime ASC
>    where = (datetime >= '###newsdate###' AND deleted = '0' AND hidden 
> = '0' AND title = '###newstitle###')
>    markers {
>      newsdate.data = date:U
>      # newstitle.data < temp.newsTitle  ## does not work
>      # newstitle < temp.newsTitle  ## does not work
>      # newstitle.data = temp.newsTitle  ## does not work
>      # newstitle = temp.newsTitle  ## does not work
>    }
>    # max = 20
>  }
>  renderObj = COA
>  renderObj {
>   10 = COA
>   10 {
>     10 = TEXT
>     10.data = field:title
>     10.noTrimWrap = ||, |
>         20 = TEXT
>     20.data = field:datetime
>     20.strftime = %d.%m.%Y
>         30 = TEXT
>     30.value = [\n]
>    }
>  }
> }
> [end]
>
> Vielen Dank für die Hilfe,
> Alex
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german



More information about the TYPO3-german mailing list