Hallo,
ich will gerade eine SQL-Abfrage realisieren, ich mach das mit dieser "Funktion" hier:
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery (
'f.*,k.name AS kname',
$table . ' f LEFT JOIN ' . $table2 . ' k ON k.uid = ' . $value,
'f.kategorie = ' . $value . ' AND f.deleted = "0" AND f.pid IN (' . $pid . ')'.
$this->cObj->enableFields($table),
'',
'f.firma ASC');
Irgendwie will mein JOIN nicht, oder hab ich da jetzt was total durcheinander bekommen? Bin kurz davor das mit einem normalen (mysql_query) Statement zu lösen 😃
Hab das mal mitn normalen probiert:
foreach($catId AS $value) {
$blub = mysql_query("
SELECT
f.*,
k.name AS kname
FROM
$table f
LEFT JOIN $table2 k ON k.uid = $value
WHERE
f.kategorie = $value
AND
f.deleted = 0
AND
f.pid IN ($pid)
ORDER BY
f.firma ASC
") Or die (mysql_error());
return $this->getItem($blub);
}
Der geht ..
*doppelpost*
Hab das ganze jetzt so gelöst:
$res = $GLOBALS['TYPO3_DB']->sql(TYPO3_db,"
SELECT
f.*,
k.name AS kname
FROM
$table1 f
LEFT JOIN $table2 k ON k.uid = $value
WHERE
f.kategorie = $value
AND
f.deleted = 0
AND
f.pid IN ($pid)
ORDER BY
f.firma ASC
");
$content .= $this->getItem($res);
Kann mir wer sagen ob das relativ sauber ist? Also sauber in Hinsicht auf TYPO3, muss ich noch irgendwas escapen oder passt das?
Du kannst das schon mit dem DB-Wrapper machen, lass Dir einfach die fertige Query anzeigen:
t3lib_div::debug($GLOBALS['TYPO3_DB']->SELECTquery (
'f.*,k.name AS kname',
$table . ' f LEFT JOIN ' . $table2 . ' k ON k.uid = ' . $value,
'f.kategorie = ' . $value . ' AND f.deleted = "0" AND f.pid IN (' . $pid . ')'.
$this->cObj->enableFields($table),
'',
'f.firma ASC'));
Danke für die nette Debugging-Ausgabe, das Query scheint auch so zu stimmen aber trotzdem meckert er, ich versteh es nicht.
P.S. Es ist schon normal das am Anfang und am Ende ein | steht, oder?
ja, debug macht das drumrum bei Strings.
Was meckert er denn, Fehlertext?
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/www/web65/html/cms/t3lib/class.t3lib_db.php on line 796
Das komische ist, das es nur bei diesem Query kommt, es kann also nicht am danach auszuführenden Code liegen, oder?
aktivier im Installtool doch mal sqlDebug, dann siehst Du auch die Query die zum Fehler führt (und in welcher Funktion die aufgerufen wird).
Hab ich, das Ergebnis ist das gleiche wie mein Post zuvor.
liefert die query denn ein Ergebnis im phpmyadmin?
//man, jetzt ist mein Bildschirm kaputt, nachdem ich mehrfach auf Dein Avatar gekloppt habe 😃
Ich sagte ja das es über den andere Code, siehe Post 2, funktioniert. Falls du das meinst.
Hehe, das mein Haustier :p