tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
504
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    fRagiLeMOD fRagiLeMOD ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Beiträge
    31
    Hallo nochmal,

    hat ja das letzte Mal gut funktioniert mit der Hilfe.

    Nun folgendes - ich habe eine Blätter funktion programmiert die bei mehreren Einträgen verteilt auf 12 Seiten so aussieht:

    Seite: Erste | Zurück | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Weiter | Letzte

    Nun ist es ja nervig, wenn man z.B. 50 Seiten hat, dass alle Zahlen von 1 - 50 dort stehen.
    Ich möchte nun nur - wenn man sich beispielsweise auf Seite 7 befindet - dass 5 Seiten angezeigt werden. Und zwar so:

    Erste | Zurück | 5 | 6 | 7 | 8 | 9 | Weiter | Letzte

    Ich hab schon einiges versucht, komme aber einfach zu keiner Lösung.
    Könnt Ihr mir helfen?
    Hier die Funktion:

    PHP-Code:
    // [Anzahl der Beiträge], [Beiträge pro Seite], [Query String], [zusätzlicher Query String]
    function browsePages($items$itemsPerPage$queryString$extendedQueryString)
    {    
        
    // Wenn mehrere Query Strings angegeben sind wird & als Oberator gewählt, ansonsten ?
        
    if($extendedQueryString == ''
            
    $operator '?';
        else 
            
    $operator '&';
        
    // Seitenanzahl bestimmen
        
    if($items $itemsPerPage
        {
            
    $pages intval($items $itemsPerPage);
            if(
    $items $itemsPerPage
                
    $pages++;
            echo 
    _PAGES.': ';
        }
        
    // Eine Seite zurück & Startseite
        
    if($_GET[$queryString] != 0)
        {    
            
    $iNegativeQS $_GET[$queryString] - $itemsPerPage;
            echo 
    '    
            <a href="'
    .$_SERVER[PHP_SELF].$extendedQueryString.$operator.$queryString.'=0">'._FIRST.'</a> | 
            <a href="'
    .$_SERVER[PHP_SELF].$extendedQueryString.$operator.$queryString.'='.$iNegativeQS.'">'.GO_BACK.'</a> | ';
        }
        
    // Seiten auflisten
        
    for($i 1$i <= $pages$i++)
        {
            
    $j = ($i 1) * $itemsPerPage;
            if(
    $_GET[$queryString] == $j)
                echo 
    '<b>'.$i.'</b> | ';
            else 
    //    Beispiel:            index.php    (    ?category=$i    )    ? // &      page        =     $j
                
    echo '<a href="'.$_SERVER[PHP_SELF].$extendedQueryString.$operator.$queryString.'='.$j.'">'.$i.'</a> | ';
        }    
        
    $iLastPage = ($pages $itemsPerPage) - $itemsPerPage;
        
    // Eine Seite weiter & letzte Seite
        
    if($_GET[$queryString] != $iLastPage)
        {
            
    $iPositiveQS $_GET[$queryString] + $itemsPerPage;
            echo 
    '    
            <a href="'
    .$_SERVER[PHP_SELF].$extendedQueryString.$operator.$queryString.'='.$iPositiveQS.'">'.GO_FORWARD.'</a> | 
            <a href="'
    .$_SERVER[PHP_SELF].$extendedQueryString.$operator.$queryString.'='.$iLastPage.'">'._LAST.'</a>';
        }

    Gruß fRagiLeMOD
     

  2. #2
    fRagiLeMOD fRagiLeMOD ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Beiträge
    31
    Weiß das wirklich keiner?
     

  3. #3
    CIX88 Tutorials.de Gastzugang
    Vielleicht bringt dich das auf eine andere Idee:
    http://www.cix88.de/cix_php/php_bere...tion_mysql.php
    http://www.cix88.de/cix_php/php_bere...ql_und_csv.php

    EDIT:

    Kann man auch ganz schenll für lesbare URLs (SEO) umschreiben.
     

  4. #4
    fRagiLeMOD fRagiLeMOD ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Beiträge
    31
    Au ja, sehr schön.
    Werd ich meine Funktion mal in ein paar Punkten erweitern.

    Deine Seite wurde "gebookmarkt"
    Vielen Dank!
     

  5. #5
    5im0n 5im0n ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    66
    Hallo!
    Das ist eig gar nicht so schwer, ich hab das selbst erst vor kurzem gemacht. Du must einfach for ein wenig neu berechnen lassen.
    PHP-Code:
    <?php
    for($i $aktuelleseite 2$i <= $aktuelleseite 2$i++)
    {}
    so ungefähr sollte das fuktionieren vllt hilft es dir ja.
    Gruß
    5im0n
     

  6. #6
    fRagiLeMOD fRagiLeMOD ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Beiträge
    31
    Danke, habe letzteres mal ausprobiert und nach ein wenig rumprobieren und tüfteln t es nun bestens.

    Hier der Code für alle, die es interessiert

    Einbau in eine Seite, wo die Blätterfunktion verwendet werden soll. (auf MySQL Basis)

    Beispiel Request:
    PHP-Code:
    if(!isset($_REQUEST[seite])) 
        
    $queryString 0;
    else 
        
    $queryString $_REQUEST[seite]; 
    Beispiel MySQL Query:
    PHP-Code:
    $query mysql_query("SELECT * FROM ".$tabelle." ORDER BY name DESC LIMIT ".$queryString*$downloadsProSeite.", ".$downloadsProSeite$verbindung) or die(mysql_error());
    $queryNum mysql_query("SELECT * FROM ".$tabelle$verbindung) or die(mysql_error()); 
    Beispiel Einbau der Funktion:
    PHP-Code:
        include_once 'browsePages.php';
        
    // Blätterfunktion einbinden - [Anzahl der Beiträge], [Beiträge pro Seite], [Query String], [zusätzlicher Query String]
        
    browsePages(mysql_num_rows($queryNum), $downloadsProSeite'seite'''); 
    Die Funktion selber

    Funktion in Datei browsePages.php
    PHP-Code:
    // Blätterfunktion
    function browsePages($items$itemsPerPage$queryString$extendedQueryString)
    {    
        
    // Wenn mehrere Query Strings angegeben sind wird & als Oberator gewählt, ansonsten ?
        
    if($extendedQueryString == ''
            
    $operator '?';
        else 
            
    $operator '&';
        
    // Wenn mehr vorhanden Einträge, als auf eine Seite Passen, dann starte Berechnung & Ausgabe
        
    if($items $itemsPerPage
        {
            
    // Seitenanzahl bestimmen
            
    $pages intval($items $itemsPerPage);
            if(
    $items $itemsPerPage
                
    $pages++;
            echo 
    _PAGES.': ';
            
    // Eine Seite zurück & Startseite
            
    if($_GET[$queryString] != 0)
            {    
                
    $iNegativeQS $_GET[$queryString] - $itemsPerPage;
                echo 
    '    
                <a href="'
    .$_SERVER[PHP_SELF].$extendedQueryString.$operator.$queryString.'=0">'._FIRST.'</a> - 
                <a href="'
    .$_SERVER[PHP_SELF].$extendedQueryString.$operator.$queryString.'='.$iNegativeQS.'">'.GO_BACK.'</a> - ';
            }
            
    $iLastPage = ($pages $itemsPerPage) - $itemsPerPage;
            
    // Seiten auflisten
            
    for($i $_GET[$queryString] - 3$i <= $_GET[$queryString] + 3$i++)
            {
                if(!(
    $i <= -1) && !($i > ($iLastPage $itemsPerPage)))/// 
                
    {
                    
    $showNumber $i 1;
                    if(
    $_GET[$queryString] == $i)
                        echo 
    '['.$showNumber.'] ';
                    else 
    //    Beispiel:            index.php    (    ?category=$i    )    ? // &      page        =     $j
                        
    echo '<a href="'.$_SERVER[PHP_SELF].$extendedQueryString.$operator.$queryString.'='.$i.'">'.$showNumber.'</a> ';
                }
            }    
            
    // Eine Seite weiter & letzte Seite
            
    if($_GET[$queryString] != ($iLastPage $itemsPerPage))
            {
                
    $iPositiveQS = ($_GET[$queryString] + ($itemsPerPage $itemsPerPage));
                echo 
    '    
                - <a href="'
    .$_SERVER[PHP_SELF].$extendedQueryString.$operator.$queryString.'='.$iPositiveQS.'">'.GO_FORWARD.'</a>  
                - <a href="'
    .$_SERVER[PHP_SELF].$extendedQueryString.$operator.$queryString.'='.($iLastPage $itemsPerPage).'">'._LAST.'</a>';
            }
        }

    Und so sieht möglicherweise die Ausgabe aus (maximal 3 auswählbare Seiten vor und nach der aktuellen Seite):
    Seite: Erste - Zurück - 1 [2] 3 4 5 - Weiter - Letzte

    Viele Grüße
    fRagiLeMOD
    Geändert von fRagiLeMOD (21.09.07 um 09:01 Uhr)
     

  7. #7
    EddieG EddieG ist offline Mitglied Gold
    Registriert seit
    Jul 2007
    Beiträge
    216
    hi,
    wie kann ich das ganze mit so einer SQL Anweisung aufrufen?
    PHP-Code:
    $sql mysql_query("SELECT * FROM replaydb WHERE anzahlsp=2 order by fileID DESC LIMIT "$offset", 7");
    while (
    $ds mysql_fetch_object($sql)) 
    {
      
    $id $ds ->fileID;
      
    $gewinner $ds ->TeamB;
      
    $verlierer $ds -> TeamA;
      
    $mapname $ds ->MapName;
      
    $dauer $ds ->Dauer;
      
    $datum $ds ->Datum;
      
    $matchup =$ds ->MatchUp;
      
    $rasseg =$ds ->rasseg;
      
    $rassev =$ds ->rassev;
      
    $replay =$ds ->ReplayPfad;

    echo 
    "
    <tr onmouseover=\"this.style.backgroundColor='#ccc';\" onmouseout=\"this.style.backgroundColor='';\" ><td width='200px' class=\"1px-rahmen\"><img src=img/
    $rasseg.png> $gewinner</td> <td width='20px'class=\"1px-rahmen\">Vs.</td> <td width='200px' class=\"1px-rahmen\"> <img src=img/$rassev.png>$verlierer </td> <td class=\"1px-rahmen\">$matchup</td> <td class=\"1px-rahmen\">$dauer Min.</td><td class=\"1px-rahmen\">$mapname</td><td class=\"1px-rahmen\"><a href=\"Detailsreppgl.php?path=$replay\"><img src=\"img/details.gif\" border=\"0\"></a></td><td class=\"1px-rahmen\"><a href=\"downloadpgl.php?filepub=$replay\"><img src=\"img/disk.gif\" border=\"0\"></a></td>
    "
    ;


    habe ein paar versuche gestartet aber hat leider nicht geklappt
     

Ähnliche Themen

  1. Blätterfunktion via JS
    Von aargau im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 02.10.08, 17:18
  2. Blätterfunktion PHP
    Von MirakFH im Forum PHP
    Antworten: 9
    Letzter Beitrag: 28.02.06, 17:02
  3. Blätterfunktion mit PHP
    Von Iceman8712 im Forum PHP
    Antworten: 9
    Letzter Beitrag: 19.08.05, 10:07
  4. A bis Z in Blätterfunktion
    Von Detlev im Forum PHP
    Antworten: 12
    Letzter Beitrag: 13.10.04, 12:17
  5. GB+Blätterfunktion
    Von MajorWindbeutel im Forum PHP
    Antworten: 8
    Letzter Beitrag: 29.01.04, 14:39