Hallo zusammen
Fragen:
Wie verwende ich Variabeln in einem Query beim WHERE Parameter?
Wie wende ich bei $GLOBALS['TYPO3_DB']->exec_SELECTquery den $ where_clause Parameter an?
Mein Problem:
Ich schaffe es nicht, dass in einem Query der Parameter WHERE meine Variable verarbeitet.
Und ich verstehe nicht wie ich in einem solchen Query den Parameter $ where_clause anwendet!
Meine Absicht:
In der Funktion 1 fülle ich eine Variable ab mit dem aktuellen Wert aus einer Datenbankabfrage.
Diesen Wert möchte ich in der Funktion 2 als Parameter WHERE in einem Query verwenden.
Hier die Definition der Variable $sectionPointer:
PHP-Code:
function singleView($content,$conf) {
...
$this->internal['currentTable'] = 'user_trails_trail';
$this->internal['currentRow'] = $this->pi_getRecord('user_trails_trail',$this->piVars['showUid']);
$sectionPointer = $this->internal['currentRow']['section'];
... }
Der $sectionPointer hat jetzt im Test den Wert 33
Hier die Übergabe der Variable an das Query:
Versuch 1 mit mysql(TYPO3_db,$query)
PHP-Code:
function singleViewLodge($content,$conf) {
...
$query = 'SELECT * FROM user_trails_lodge WHERE section=33'.$this->cObj->enableFields('user_trails_lodge');
$res = mysql(TYPO3_db,$query);
$row=mysql_fetch_assoc($res);
debug($row);
... }
Wenn ich den Wert 33 'hart' definiere funktioniert das Query und ich erhalte mein gewünschtes Ergebnis.
Ich muss aber den Wert 33 mit einer Variable ersetzen.
Versuch 2 mit $GLOBALS['TYPO3_DB']->exec_SELECTquery
PHP-Code:
function singleViewLodge($content,$conf) {
...
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'user_trails_lodge', 'section=33');
$row=mysql_fetch_assoc($res);
debug($row);
... }
auch hier, Wenn ich den Wert 33 'hart' definiere, funktioniert das Query und ich erhalte mein gewünschtes Ergebnis.
Wie verwende ich hier die Variable?
Meine Quellen:
Ich habe bereits die API Doku auf typo3.org konsultiert, aber ich werd einfach nicht schlau daraus!
Wie verwende ich den Parameter $ where_clause ?
Aus API:
t3lib_DB.exec_SELECTquery ( $ select_fields,
$ from_table,
$ where_clause,
$ groupBy = '',
$ orderBy = '',
$ limit = ''
)
Creates and executes a SELECT SQL-statement Using this function specifically allow us to handle the LIMIT feature independently of DB. Usage count/core: 340
Parameter: $ where_clause,
string Optional additional WHERE clauses put in the end of the query. NOTICE: You must escape values in this argument with $this->fullQuoteStr() yourself! DO NOT PUT IN GROUP BY, ORDER BY or LIMIT!
Es ist bestimmt einfach..., wenn man weiss wie und warum
Besten Dank für jede Hilfe!
Gruss Freeman alias hiking man
Hiking Trail / Via Alpina / Pacific Crest Trail PCT
.