[TYPO3-german] pi_exec_query

Dr. Ronald P. Steiner Ronald.Steiner at googlemail.com
Fri Jul 11 10:10:42 CEST 2008


Danke an alle,

ich habe jetzt was funktionierendes hinbekommen. Damit kann ich alle 
Zeilen aus der DB-Tabelle tx_dam hohlen, die zu bestimmten Kategorien 
gehören:

$items = array();
$table = 'tx_dam';
$addWhere = $this->cObj->enableFields($sourceTable);
$mm_cat = array(
   'table' => 'tx_dam_cat',
   'mmtable' => 'tx_dam_mm_cat',
   'catUidList' => '3,7'
);
$this->internal['results_at_a_time'] = 1000;
$this->conf['pidList'] = 1;
$res = $this->pi_exec_query($table,0,$addWhere,$mm_cat);
while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))    {
   $items[] = $row;
}
debug($items)

vielen Dank

Ron

bernd wilke schrieb:
> Dr. Ronald P. Steiner schrieb am Thu, 10 Jul 2008 15:11:22 +0200:
> 
>> Hi Dimitri,
>>
>> vielen Dank für Deine Antwort, das hilft mir schon sehr weiter. Über
>> $this->conf['pidList'] kann man die pid festlegen die alle DB-Tabellen
>> Reihen haben sollen, die mit pi_list_query gehohlt werden. Leider ist es
>> wirklich so, wie Du sagst. Es wird nur eine maximale Anzahl an Einträgen
>> abgerufen. Über: $this->internal['results_at_a_time'] kann zwar die
>> Anzahl verändert werden, doch werden maximal nur 50 Einträge aus der
>> Tabelle ausgelesen. Das reicht für meinen Einsatz leider nicht aus.
>> $GLOBALS['TYPO3_DB']->exec_SELECTgetRows funktioniert recht gut, doch
>> ist es mir nicht klar, wie ich da eine Einschränkung auf eine Kategorie
>> vornehme. Soweit mein Code bisher:
>>
>> $items = array();
>> $table = "tx_dam";
>> $mm_cat = array('table' => 'tx_dam_cat', 'mmtable' => 'tx_dam_mm_cat',
>> 'catUidList' => '2');
>> $this->internal['results_at_a_time'] = 1000000000;
>> $this->conf['pidList'] = 1;
>> $res = $this->pi_exec_query('tx_dam',0,'',$mm_cat,'','','FROM tx_dam');
>> while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))    {
>>          $items[] = $row;
>> }
>> debug($items);
>>
>> Das Problem ist, dass aktuell nur 50 Resultate angezeigt werden. bzw.
>> dass ich nicht weiß wie ich die Einschränkung auf eine Kategorie in
>> exec_SELECTgetRows einbeziehen kann.
>>
>> Irgendwelche Hinweise?
> 
> vielleicht solltest du dir mal klar machen welches SQL-Statement aus 
> deinen Parametern zusammengebastelt wird. wichtig sind dabei alle 
> Parameter, auch die, die nur per default-Wert zum SQL beitragen.
> 
> Ich hab mir mal [1] alles als Prototyp zusammengetragen, so dass ich an 
> den Variablennamen sehen kann worum es in welchem Parameter geht.
> 
> (Das Query steht hinter dem Kasten, weil ich es normalerweise nicht 
> brauche)
> 
> nach der Abfrage ist auch ein auskommentiertes debug() vorhanden, das mir 
> alles zum debuggen ausgeben kann. Inklusive dem gesamten Ergebnis-Array, 
> bei dem ich übrigens noch nie eine (automatische) maximale Anzahl 
> festgestellt habe.
> 
> [1] http://www.pi-phi.de/t3v4/database-api.html
> 
> bernd


More information about the TYPO3-german mailing list