ilch Forum » Allgemein » HTML, PHP, SQL,... » php ausgabe auf mehreren seiten

Geschlossen
  1. #1
    User Pic
    corian Entwickler
    Registriert seit
    16.06.2011
    Beiträge
    1.096
    Beitragswertungen
    122 Beitragspunkte
    Hey Leute,
    ich habe folgendes Problem.

    ich möchte gerne mit einem script alle Bilder auslesen die als letztes in die user gallery hoch geladen wurden.
    soweit klappt das auch alles.

    Nun will ich diese auf mehrere Seiten verteilen. sprich 10 Bilder pro Seite.
    Jetzt sitze ich schon seit 2 tagen daran und bekomme es einfach nicht hin eine Seitennavigation einzubauen. Ich habe mich schon mit google aus einanderegesetzt aber irgendwie hapert das ganze immer...

    Vielleicht könnt ihr mir ja helfen.

    Hier mal mein php code der jetzt noch auf LIMIT 10 steht

    <?php
    defined ('main') or die ( 'no direct access' );
    
    echo '<center><table align="center">';
    
    $erg = db_query("SELECT * FROM prefix_usergallery ORDER BY id DESC LIMIT 10");
    
    while ($row = db_fetch_object($erg) ) {
    
    $anz = db_result(db_query("SELECT COUNT(*) FROM prefix_usergallery WHERE id < ".$row->id." AND uid = ".$row->uid),0);
    echo '<tr><tr ><a href="index.php?user-usergallery-'.$row->uid.'-show-'.$row->id.'"><img src="include/images/usergallery/img_thumb_'.$row->id.'.'.$row->endung.'" border="0" alt="'.$row->name.'" title="&nbsp;" /></a></tr></tr>&nbsp;&nbsp;&nbsp;';
    
    }
    
    echo '</table></center>';
    
    ?>
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    corian Entwickler
    Registriert seit
    16.06.2011
    Beiträge
    1.096
    Beitragswertungen
    122 Beitragspunkte
    So ich habe jetzt noch mal ein bisschen weiter gemacht aber so richtig will es immer noch nicht.
    Die Seiten links werden angezeigt aber es werden immer nur die ersten Datensätze angezeigt.

    Hier mein Code


      <?php
    $seite = $_GET["1"];
    if(!isset($seite))
       {
       $seite = 1;
       }
    $eintraege_pro_seite = 4;
    
    
    $start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
    
    $abfrage = "SELECT * FROM prefix_usergallery order by id DESC LIMIT $start, $eintraege_pro_seite";
    $ergebnis = db_query($abfrage);
    while($row = db_fetch_object($ergebnis))
        {
    $anz = db_result(db_query("SELECT * FROM prefix_usergallery order by id"));
    echo '<tr><tr><a href="index.php?user-usergallery-'.$row->uid.'-show-'.$row->id.'"><img src="include/images/usergallery/img_thumb_'.$row->id.'.'.$row->endung.'" border="0" alt="'.$row->name.'" title="&nbsp;" /></a></tr></tr>&nbsp;&nbsp;&nbsp;';
    
    }
    
    $result = db_query("SELECT id FROM prefix_usergallery");
    $menge = db_num_rows($result);
    
    $wieviel_seiten = $menge / $eintraege_pro_seite;
    
    echo "<div align=\"center\">";
    echo "<b>Seite:</b> ";
    
    for($a=0; $a < $wieviel_seiten; $a++)
       {
       $b = $a + 1;
       if($seite == $b)
          {
          echo "  <b>$b</b> ";
          }
       else
          {
          echo "  <a href=\"?self-gallery1=$b\">$b</a> ";
          }
    
    
       }
    echo "</div>";
    ?>



    Zuletzt modifiziert von corian am 14.01.2013 - 22:57:55
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Dafür gibts bei ilch die db_make_sites Funktion, die recht oft Verwendung findet, eben überall da, wo es mehrere Seiten gibt, wie News, Forum, etc.

    Da solltest du dir das eigentlich abschauen können, gerade mit dem jetzt schon erworbenen Wissen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    corian Entwickler
    Registriert seit
    16.06.2011
    Beiträge
    1.096
    Beitragswertungen
    122 Beitragspunkte
    Kannst du mir erklären wie ich diese einsetzte oder gibt es dazu eine docu?
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Leider gibt es keine Doku dafür.

    Hier mal am Bsp vom gbook

    $limit = $allgAr['gbook_posts_per_site'];  // Limit
      $page = ( $menu->getA(1) == 'p' ? escape($menu->getE(1), 'integer') : 1 );
      $MPL = db_make_sites ($page , "" , $limit , "?gbook" , 'gbook' );
      $anfang = ($page - 1) * $limit;
    
    ...
    
    	$erg = db_query("SELECT * FROM prefix_gbook ORDER BY time DESC LIMIT ".$anfang.",".$limit) or die (db_error


    Am Anfang wird das limit gesetzt, also die Anzahl von Einträgen pro Seite, müsste bei dir 10 sein.

    Dann wird die Seite ermittelt, auf der man sich gerade befindet, ggf. musst du die Zahlen in der Klammern der get? Funktionen anpassen, um die menu Klasse zu verstehen ggf. in die Doku schauen -> www.ilch.de/doku-entwickler11i.html#menue

    Die nächste Zeile ist der Aufruf von db_make_sites($page, $where, $limit, $link, $dbtable[, $anzahl])

    Hier mal die Parameter, $page und $limit sind oben schon beschrieben und sollten klar sein.

    Bei $where kannst du der Datenbankabfrage Bedingungen hinzufügen, in deinem Bsp. muss man da eigentlich nix machen, da für die Anzahl von Bildern nicht interessant ist wie sie sortiert ist und du keine weiteren Einschränkungen hast.

    $link ist die Aufzurufende Seite, an diesen wird dann jeweils -pX gehangen, um die jeweiligen Seiten aufzurufen und was bei $page abgerufen wird, welche Seite gerade angezeigt werden soll.

    $dbtable ist der Name der Datenbanktabelle ohne prefix_.

    Man kann anstatt der Datenbanktabelle und where auch direkt eine Gesamtanzahl angeben, das wäre $anzahl, dieser Parameter ist aber optional und muss nicht angegeben werden, wenn man mit einer Datenbanktabelle arbeitet.

    Der Rückgabewert von db_make_sites ist die Linkliste, die du mit echo ausgeben oder an ein Template übergeben kannst.

    Ich hoffe das war verständlich.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    corian Entwickler
    Registriert seit
    16.06.2011
    Beiträge
    1.096
    Beitragswertungen
    122 Beitragspunkte
    Danke Mairu, das war doch mal eine echt super Erklärung und hat auch gleich funktioniert.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten