[TYPO3-german] pi_exec_query

Dr. Ronald P. Steiner Ronald.Steiner at googlemail.com
Thu Jul 10 15:11:22 CEST 2008


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?

beste Grüße

Ron




Dimitri Ebert schrieb:
> Hallo Ron,
> die pi_exec_query bzw. pi_list_query bauen die pid IN() Einschränkung
> ein wenn der 7. parameter $query leer bliebt, außerdem gibt es auch eine
> LIMIT Einschränkung in dieser Funktion.
> Wenn wirklich die ganze Tabelle ausgelesen werden soll, würde ich
> $items = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*','my_table'," 1
> ".$this->cObj->enableFields('my_table'));
> verwenden.
> * am besten noch einschränken.
> 
> 
> Dr. Ronald P. Steiner schrieb:
>> Hallo Liste,
>>
>> mit folgender Anfrage wollte ich eigentlich die ganze tt_content Tabelle 
>> in $items einlesen:
>>
>>          $res = $this->pi_exec_query('tt_content');
>>          while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))    {
>>              $items[] = $row;
>>          }
>>          debug($items);
>>
>> Allerdings wird nur eine Tabellenzeile eingelesen, nämlich die mit pid = 
>> aktuelle Seite und uid = aktuelles Content Element.
>>
>> Wenn statt tt_content eine andere Tabelle, z.B. tx_dam verwendet wird, 
>> wird gar kein $item mehr eingelesen.
>>
>> Wie kann ich den obigen Code verändern um eine ganze DB Tabelle einzulesen?
>>
>> beste Grüße
>>
>> Ron
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.netfielders.de
>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>>
>>
>>   


More information about the TYPO3-german mailing list