Über mein erstelltes Frontend Plugin (mit Hilfe des Kickstarters), soll eine Datenbanktabelle angezeigt werden.
Leider erzeugt der Befehl "$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)" einen Fehler. Wo liegt der Fehler?
Aus den hier aufgelisteten Fehlermeldungen, werde ich leider nicht schlau (siehe Warning).
Wenn ich das FE-Plugin als Backend Plugin laufen lasse, funktioniert es. Ich muss mit Sicherheit irgendwo noch ein paar Einstellungen machen damit er die Funktion nutzen kann. Aber wo?
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\cms\t3lib\class.t3lib_db.php on line 809
Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\xampp\htdocs\cms\t3lib\class.t3lib_db.php:809) in C:\Program Files\xampp\htdocs\cms\typo3\sysext\cms\tslib\class.tslib_fe.php on line 3226
$tabellenname='user_tabelle_name';
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
'*',
$tabellenname,
$tabellenname.'.deleted = 0 AND '.$tabellenname.'.hidden = 0',
'',
'uid DESC',
''
);
$content.='<table>';
while($logRow = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
$content.='<tr><td>'.$logRow['uid'].'</td><td>'.$logRow['vorname'].'</td><td>'.$logRow['nachname'].'</td><td>'.
$logRow['strasse'].'</td><td>'.$logRow['plz'].'</td><td>'.$logRow['ort'].'</td><td>'.
$logRow['telefon'].'</td><td>'.$logRow['fax'].'</td><td>'.$logRow['email'].'</td><td>'.
$logRow['schulungen'].'</td><td>'.$logRow['qualifikationen'].'</td></tr>';
}
$content.='</table>';
Aktivier im Installtool mal alle debug-Funktionen, wie debug und sqlDebug. Setz außerdem noch deine IP Adresse in devipmask ein und setz displayerror auf 2.
Dann werden dir auch mal vernünftige Fehlermeldungen angezeigt.
das ist eine gute idee. aber auch so kannst du den fehler darauf eingrenzen, dass deine SQL-Abfrage fehlschlägt. ich würde folgendes nach der Abfrage und vor der Schleife einbauen:
if ($res === false) {
echo "Fehler: ".$GLOBALS['TYPO3_DB']->sql_error();
return;
}
so wird im falle eines fehlers (der bei dir ziemlich sicher vorliegt) die entsprechende SQL Fehlermeldung ausgegeben.
Hallo.
Die Warning bringt es eigentlich auf den Punkt: Du versuchst via while etwas zu durchlaufen, was irgendwie nicht ganz der Erwartung von PHP (und vermutlich Dir) entspricht. Meine Vermutung wäre, dass Dein SQL-Statement nicht ganz passt. Lass Dir das doch mal ausgeben (http://typo3blogger.de/typo3-debuggen/#more-3419)
Viele Grüße
Julian
P.S: Die Berücksichtigung der deleted-, hidden-Felder usw. lässt sich bequemer via enableFields($table) lösen.
Das passt nicht zusammen:
...
(mit Hilfe des Kickstarters)
...
$tabellenname='user_tabelle_name';
es müsste heißen:
$tabellenname='tx_extensionname_tabellenname';
Was sollte da nicht passen?
TYPO3 Core-API schriebProject specific extensions (not generally usable or shareable): Select any name you like and prepend it “user_”
(which is the only allowed use of a key starting with “u”). This prefix denotes that this extension is a local one which does
not come from the central TYPO3 Extension Repository or is ever intended to be shared. Probably this is an “adhoc”
extension you have made for some special occasion.
https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/Index.html
Und entsprechend sind auch dann Tabellennamen mit Prefix "user_". Siehe hierzu Naming conventions
Viele Grüße
julian
Ok, ich lasse mich gerne korrigieren. Diese Möglichkeit der Extensionbenennung habe ich nie genutzt, daher war sie mir nicht geläufig.
Aber dann müsste es so sein, oder?:
$tabellenname='user_extensionname_tabellenname';