ich muss es Dir scho wieder sagen - nutze die API. Also keine mysql-Befehle sondern $GLOBALS['TYPO3_DB']->methode.
Zu Deinem Problem - kein Wunder, Du überschreibst immer den selben Marker mit dem nächsten Ergebnis.
Hi,
ich sitze nun auch schon ein paar Tage an einem wie ich zunächst dachte recht simplen Sache, die sich für mich leider als doch etwas schwieriger rausstellt.
es geht um das simple auslesen von Datensätze aus der DB in einer Extension. Die Daten sollen aufgelistet werden, also eine Select-Abfrage, wo mehr als ein Treffer wahrscheinlich ist, so das dann etwa folgendes zu sehen ist:
neue Kommentare:
neuer Koomentar in 55
neuer Kommentar in 59
Ich weiß wie ich das über ein Template hinbekomme, nach dem guten Tutorial zur eigenen Extension von Steffenk, also über Subparts und dann mit <--Row--> <--Row-->
Aber ich will nicht bei jeder kleinen Abfrage ein riesen Fass aufmachen, sprich, ich möchte zb in diesem Fall einfach nur das Ergebniss der DB-Abfrage in eine Variable/ in einen normalen Marker Speichern und im Template ausgeben. Bisher wird mir aber immer nur der letzte Wert angezeigt. wenn zb die Treffer eigentlich " 5 12 16 17 22" sein sollten, wird trotz while-schleife immer nur "22" ausgegeben. Bitte gib mir jemand einen Tipp, weil ich es hier echt schon langsam nervig finde.
Im folgenden noch mal ein stück source, bitte, ich weiß das es nicht die api-konforme db-abfrage ist, also geschenkt, hatte das ganze schon diverese male mit der api-konformen versucht, diesmal ists es zufällig nun diese, es geht nun erstmal nur darum, alle treffer auszugeben:
Wenn ich in der while-Schleife hier keinen Marker verwende, sondern die $row['uid'] direkt per echo ausgebe, werden alle treffer ausgegeben, und nciht nur der letzte, aber das nur zur Info, da es ja keine wirklcihe Lösung für das Problem ist.HTML-Code:function account($conf) { $subpart = $this->cObj->getSubpart($this->template,'###MY_ACCOUNT###'); $singlerow=$this->cObj->getSubpart($subpart,'###ROW###'); $pfad = $this->conf['path']; $benutzer = $GLOBALS['TSFE']->fe_user->user['uid']; // Get all the data from the "example" table $result = mysql_query("SELECT * FROM tx_veguestbook_entries ") or die(mysql_error()); // keeps getting the next row until there are no more to get while($row = mysql_fetch_array( $result )) { // Print out the contents of each row into a table $markerArray['###TREFFER###'] = $row['uid']; } $content = $this->cObj->substituteMarkerArrayCached($subpart,$marker,$subpartArray,array()); return $content; } }
ICh hoffe, ihr könnt mir helfen und ich hab das verständlich erklärt und sage schonmal danke für die antworten.
Mfg, Katjusha
ich muss es Dir scho wieder sagen - nutze die API. Also keine mysql-Befehle sondern $GLOBALS['TYPO3_DB']->methode.
Zu Deinem Problem - kein Wunder, Du überschreibst immer den selben Marker mit dem nächsten Ergebnis.
TYPO3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
Aha, so etwas hatte ich schon fast vermutet. wie kann ich verhindern, das der Marker überschrieben wird?Code:Zu Deinem Problem - kein Wunder, Du überschreibst immer den selben Marker mit dem nächsten Ergebnis.
Steffen, ich habs hinbekommen. Es war tatsächlich nur ein kleiner Punkt nötig, um alle Treffer asuzugeben, also ".=" statt "=". Das deckt sich ja auch mit deiner zutreffenden aussage, das sich die Marker überschreiben. Also mit dem Punkt wird dann der nächste Werrt drangehängt, anstatt das die Variable neu definiert wird. Ich danke dir für deine hilfreiche Antwort.
Gruß, Katjusha
PS: noch mal zur API, also ich benutze schon normalerweise die TYPO3-Syntax, nur in diesem Beispiel war es eine andere, da man wenn etwas auch beim 100. mal nicht klappt, dann überlegt man halt, ob es nicht vieleicht wie in diesem Fall zb an der select-syntax liegt und wechselt testweise diese aus, usw. das kennt sicher der eine oder andere php-anfäger aus eigener Erfahrung.
Du kannst Dir ja die Beta2 installieren, dort gibt es ein sehr gutes Error handling. Wenn also bei DB-Abfrage was schief geht, bekommst Du es auch mit. (mit sqlDebug=1)
(wobei natürlich vergessene Konkatenierung kein "Fehler" erzeugt.)
TYPO3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)