Antwort
 
LinkBack Themen-Optionen Thema bewerten Ansicht
  #1  
Alt 06.02.08, 11:14
Forum Newbie
 
Registriert seit: 02.11.07
Alter: 20
Beiträge: 45

Einzelne Datensätze ausgeben -> pi_list_browseresults


Hallo Leute,
es geht um besagte Funktion.

Zuerst der Code:

Code:
function bookshelf()    {

        
        $select_fields='*';
        
        $from_table = 'tx_bookshelf_rack';    
        
        $where_clause="1 = 1 ";
        
        $groupBy='';
        
        $limit='9999';


        $res=$GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause,$groupBy,$orderBy,$limit);
            
        $row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
        
        $next_button=$this->pi_getLL("next");
        $prev_button=$this->pi_getLL("last");
        
        
        $marker['###NEXT_BUTTON###']=$this->pi_linkTP_keepPIvars($next_button,$overrulePIvars,$cache=0,$clearAnyway=0,$altPageId = 0);
        
        $marker['###PREV_BUTTON###']=$this->pi_linkTP_keepPIvars($prev_button,$overrulePIvars,$cache=0,$clearAnyway=0,$altPageId = 0);

        $marker['###DATASHEET###'].= $row['book_title']." \n";
        $marker['###DATASHEET###'].= $row['author']." \n";
        $marker['###DATASHEET###'].= $row['isbn']." \n";
        $marker['###DATASHEET###'].= $row['place']." <br /> \n"; 
        
            
        $content.=$this->cObj->substituteMarkerArrayCached($this->bookshelf,$marker,array(),array());

        return $content;
Ich möchte nun über die beiden mit $this->pi_linkTP_keepPIvars erstellten Links durch klicken erreichen, dass eine neue Ausgabe erziehlt wird, nämlich der nächste oder der vorige Datensatz der Tabelle tx_bookshelf_rack angezeigt wird.

Kann mir da jemand helfen?
__________________
Jedweges Interesse beginnt mit einer dummen Frage.

Geändert von turnamo (06.02.08 um 16:36 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #2  
Alt 06.02.08, 12:02
Forum Stammgast
 
Registriert seit: 13.05.06
Alter: 31
Beiträge: 290

Schau' Dir am besten mal die Funktion "pi_list_browseresults" an.

Zur Nutzung:
PHP-Code:
//...
return $content.$this->pi_list_browseresults
Mußt Du vorab die Variablen "$this->internal['res_count']" (Gesamtzahl aller anzuzeigenden Datensätze) und "$this->internal['results_at_a_time']" (Anzahl der Datensätze pro Seite) befüllen. Wenn Du deine Variable "$limit" dann noch so gestaltest:
PHP-Code:
$limit $this->piVars['pointer'].','.$this->internal['results_at_a_time']; 
bist Du Deinem gewünschten Ergebnis wahrscheinlich schon ein großes Stück näher.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #3  
Alt 06.02.08, 14:20
Forum Newbie
 
Registriert seit: 02.11.07
Alter: 20
Beiträge: 45

Fehler


Erstmal vielen dank ! Hab schon ein bißchen rumgesucht. Scheint die richtige Funktion zu sein.

Dabei gibt es leider ein Problem:

Warning: mysql_fetch_assoc(:sad: supplied argument is not a valid MySQL result resource in /var/www/typo3_src-4.1.2/t3lib/class.t3lib_db.php on line 796

Warning: Cannot modify header information - headers already sent by (output started at /var/www/typo3_src-4.1.2/t3lib/class.t3lib_db.php:796) in /var/www/typo3_src-4.1.2/typo3/sysext/cms/tslib/class.tslib_fe.php on line 2907
Code:
function bookshelf()    {

        
        $select_fields = '*';
        
        $from_table = 'tx_bookshelf_rack';    
        
        $where_clause = "1 = 1";
        
        $groupBy = '';
        
        $this->internal['res_count'] = count('rows');
        $this->internal['results_at_a_time'] = 2;
        
        $limit = $this->piVars['pointer'].','.$this->internal['results_at_a_time'];
        
        
        //function enableFields(tx_bookshelf_rack,$show_hidden=-1,$ignore_array=array(),$noVersionPreview=FALSE));
        

        $res=$GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause,$groupBy,$orderBy,$limit);
            
        $row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
        
        $next_button=$this->pi_getLL("next");
        $prev_button=$this->pi_getLL("last");
        
        $marker['###NEXT_BUTTON###']=$this->pi_linkTP_keepPIvars($next_button,$overrulePIvars,$cache=0,$clearAnyway=0,$altPageId = 0);
        
        $marker['###PREV_BUTTON###']=$this->pi_linkTP_keepPIvars($prev_button,$overrulePIvars,$cache=0,$clearAnyway=0,$altPageId = 0);

        $marker['###DATASHEET###'].= $row['book_title']." \n";
        $marker['###DATASHEET###'].= $row['author']." \n";
        $marker['###DATASHEET###'].= $row['isbn']." \n";
        $marker['###DATASHEET###'].= $row['place']." <br /> \n"; 
        
            
        $content.=$this->cObj->substituteMarkerArrayCached($this->bookshelf,$marker,array(),array());

        return $content.$this->pi_list_browseresults;
        
        }
__________________
Jedweges Interesse beginnt mit einer dummen Frage.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #4  
Alt 06.02.08, 14:36
Forum Stammgast
 
Registriert seit: 13.05.06
Alter: 31
Beiträge: 290

Versuchs mal so:
Code:
function bookshelf()    {
        $select_fields = '*';
        
        $from_table = 'tx_bookshelf_rack';    
        
        $where_clause = "1 = 1 ".$this->cObj->enableFields('tx_bookshelf_rack');

        $res=$GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause);
        
        $this->internal['res_count'] = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
        $this->internal['results_at_a_time'] = 2;

        $groupBy = '';        
        $limit = $this->piVars['pointer'].','.$this->internal['results_at_a_time'];
        

        $res=$GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause,$groupBy,$orderBy,$limit);
            
        while($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)){ 
          $marker['###DATASHEET###'].= $row['book_title']." \n";
          $marker['###DATASHEET###'].= $row['author']." \n";
          $marker['###DATASHEET###'].= $row['isbn']." \n";
          $marker['###DATASHEET###'].= $row['place']." <br /> \n"; 
        }
        
            
        $content.=$this->cObj->substituteMarkerArrayCached($this->bookshelf,$marker,array(),array());

        return $content.$this->pi_list_browseresults;
}
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #5  
Alt 06.02.08, 15:24
Forum Newbie
 
Registriert seit: 02.11.07
Alter: 20
Beiträge: 45

geht leider immernoch nicht.

Warning: mysql_fetch_assoc(:sad: supplied argument is not a valid MySQL result resource in /var/www/typo3_src-4.1.2/t3lib/class.t3lib_db.php on line 796
__________________
Jedweges Interesse beginnt mit einer dummen Frage.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #6  
Alt 06.02.08, 15:42
Forum Stammgast
 
Registriert seit: 13.05.06
Alter: 31
Beiträge: 290

Code:
function bookshelf()    {
        $select_fields = '*';
        
        $from_table = 'tx_bookshelf_rack';    
        
        $where_clause = "1 = 1 ".$this->cObj->enableFields('tx_bookshelf_rack');

        $res=$GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause);
        
        $this->internal['res_count'] = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
        $this->internal['results_at_a_time'] = 2;

        $groupBy = '';       

        if(empty($this->piVars['pointer'])) $this->piVars['pointer'] = 0;

        $limit = $this->piVars['pointer'].','.$this->internal['results_at_a_time'];
        

        $res=$GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause,$groupBy,$orderBy,$limit);
            
        while($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)){ 
          $marker['###DATASHEET###'].= $row['book_title']." \n";
          $marker['###DATASHEET###'].= $row['author']." \n";
          $marker['###DATASHEET###'].= $row['isbn']." \n";
          $marker['###DATASHEET###'].= $row['place']." <br /> \n"; 
        }
        
            
        $content.=$this->cObj->substituteMarkerArrayCached($this->bookshelf,$marker,array(),array());

        return $content.$this->pi_list_browseresults;
}
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #7  
Alt 06.02.08, 16:13
Forum Newbie
 
Registriert seit: 02.11.07
Alter: 20
Beiträge: 45

Die Ausgabe des Datensatzes, oder sogar mehrerer, funktioniert, vielen Dank!

Es fehlt nur noch die Leiste mit den Zahlen und dem Weiter bzw. dem ZurückLink, die wie ich dachte die Funktion pi_list_browseresults automatisch erstellt?
__________________
Jedweges Interesse beginnt mit einer dummen Frage.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #8  
Alt 06.02.08, 16:21
Forum Stammgast
 
Registriert seit: 13.05.06
Alter: 31
Beiträge: 290

Zur Nutzung:
PHP-Code:
//...
return $content.$this->pi_list_browseresults(); 
Mein Fehler, da hättest Du aber auch drauf kommen dürfen ...

Du kannst die Ausgabe dieser Funktion außerdem mittels bestimmter "Sprachvariablen" noch weiter anpassen: (pi1/locallang.xml)
<label index="pi_list_browseresults_displays">Datensätze %s bis %s von insgesamt %s:</label>
<label index="pi_list_browseresults_noResults">Keine Datensätze gefunden.</label>
<label index="pi_list_browseresults_prev">« zurück</label>
<label index="pi_list_browseresults_page">Seite</label>
<label index="pi_list_browseresults_next">vorwärts »</label>

Geändert von ThBodi (06.02.08 um 16:25 Uhr). Grund: Ergänzung
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #9  
Alt 06.02.08, 16:24
Forum Newbie
 
Registriert seit: 02.11.07
Alter: 20
Beiträge: 45

Ich habe angenommen, dass er noch Parameter benötigt und ausprobiert, woraufhin aber nichts passierte.

Ich bin mit der Syntax einfach noch viel zu wenig vertraut, hoffe das kommt mit der Übung.


Hier nochmal vielen Dank für deine Hilfe! Auch wegen den Sprachvariabeln, werd das mal ausprobieren.


Und nochmal der Endstand:

Code:
/********************************************************

bookshelf()
Displays books of the shelf

********************************************************/    

function bookshelf()    {

        
        $select_fields = '*';
        
        $from_table = 'tx_bookshelf_rack';    
        
        $where_clause = "1 = 1".$this->cObj->enableFields("tx_bookshelf_rack");
        
        
        $res=$GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause);
        
        $this->internal['res_count'] = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
        $this->internal['results_at_a_time'] = 1;
        
        
        $groupBy = '';
        
        if(empty($this->piVars['pointer'])) $this->piVars['pointer'] = 0;
        
        $limit = $this->piVars['pointer'].','.$this->internal['results_at_a_time'];
        
        $res=$GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause,$groupBy,$orderBy,$limit);
    

        while($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)){ 
            $marker['###DATASHEET###'].= $row['book_title']." \n";
            $marker['###DATASHEET###'].= $row['author']." \n";
            $marker['###DATASHEET###'].= $row['isbn']." \n";
            $marker['###DATASHEET###'].= $row['place']." <br /> \n"; 
            }
            
        $content.=$this->cObj->substituteMarkerArrayCached($this->bookshelf,$marker,array(),array());

        return $content.$this->pi_list_browseresults();
        
        }
__________________
Jedweges Interesse beginnt mit einer dummen Frage.

Geändert von turnamo (06.02.08 um 16:32 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
pi_linkTP_keepPIvars title pommesMajo TYPO3 4.x Fragen und Probleme 1 20.10.08 09:40
Gelöst Styles und pi_linkTP_keepPIvars? turnamo TYPO3 4.x Fragen und Probleme 0 07.02.08 12:40
Link mit pi_linkTP_keepPIvars aber mit Params? typonewbe Extension modifizieren oder neu erstellen 2 03.08.07 14:27
pi_linkTP_keepPIvars? Nur Pfad nicht Link? BENCH Extension modifizieren oder neu erstellen 2 24.03.07 19:18
$this->pi_linkTP_keepPIvars umwandeln zu linkToPage mab82 Extension modifizieren oder neu erstellen 1 04.11.06 18:54


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0