tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Yaslaw
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
666
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Divo1984 Divo1984 ist offline Mitglied Gold
    Registriert seit
    Aug 2010
    Beiträge
    128
    Hallo,

    ich mal wieder, bin noch ziemlich neu in dem Bereich daher bitte ich um Nachsicht

    Ich habe jetzt folgenden Code:

    PHP-Code:
    <?php include("header.php");?>


    <?php if(!isset($_SESSION['uname'])){

        echo
    "Dieser Bereich ist nur für eingeloggte Mitglieder sichtbar!";
        }else{
        
        if(isset(
    $do)==""$do="list";?>
        
        
    <?php 
        

        
    if($do=="list"){
            
            
    $sql "SELECT * FROM beats ORDER BY id";
            
    $abfrage mysqli_query($verbindung$sql);
            echo
    "Überschrift<br><br>";
            
                while(
    $beats mysqli_fetch_assoc($abfrage)){
                
                echo
    "<font color='#b8860b'>{$beats['id']}</font>"
                echo
    "<font color='#b8860b'>{$beats['uname']}</font>";
                echo
    "<font color='#b8860b'>{$beats['bname']}</font>";
                echo
    "<br>";

                
            }
                echo
    "<br>";
                echo
    "<br>";
                echo
    "<br>";
                echo
    "Hier der Link zum Upload!";
        
        }
        
        
    }
    ?>


    <?php include("footer.php");?>
    Jetzt ist meine Frage:

    Wie kann ich die Ausgabe auf eine maximale Zahl z. B. 25 pro Seite begrenzen und eine dynamische Linkleiste erzeugen die je nach Anzahl der vorhandenen Daten in der Datenbank ausgibt wieviele Seiten vorhanden sind?

    Kann mir da jemand weiterhelfen?
    Geändert von Divo1984 (06.10.10 um 14:38 Uhr)
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Am besten suchst du dir ein Tutorial. Ich hab grad keine Lust einen grossartigen Code hier zu erstellen.
    Bei der DB-Abfrage kannst du mit LIMIT den Bereich engrenzen.

    Hier habe ich mal vor langem ein Coder allgemeiner Natur erstellt. ev. kannst du damit etwas anfangen
    http://wiki.yaslaw.info/wikka/PhpJumpNavigator
    Und hier ist das Script als Beispiel
    http://yaslaw.info/example/navigator.php

    PS: Du kannst meine Klasse Navigator übenrehmen und mit der DB-Resultaten füttern
    Divo1984 bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Für die Begrenzun kann man den LIMIT-Befehl verwenden.
    Und für die Anzahl aller Datensätze kannst du folgenden Befehl verwenden:
    Code sql:
    1
    
    SELECT COUNT(*) FROM your_table


    Sehe gerade, yaslaw hat schon geantwortet. Naja zu langsam.
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  4. #4
    Divo1984 Divo1984 ist offline Mitglied Gold
    Registriert seit
    Aug 2010
    Beiträge
    128
    Ich danke euch für eure schnellen Antworten, ich denke das hilft mir weiter! Dankö
     

  5. #5
    Divo1984 Divo1984 ist offline Mitglied Gold
    Registriert seit
    Aug 2010
    Beiträge
    128
    So ich habe das mit der Begrenzung jetzt hinbekommen, das war ja noch leicht!

    @yaslaw der Code bringt mir grad net viel Und ein Tutorial finde ich auch net

    das was ich jetz noch brauche ist eine "Linkleiste" die halt dynamisch reagiert wieviele Einträge in der Datenbank sind!

    Sind z. B. <= 25 Einträge drin, brauche ich nur nen Link "1" sollten aber mehr als 25 Einträge in der DB sein brauche ich nen zweiten Link "2", bei mehr als 50 "3" usw...

    Wie kann ich das verwirklichen?
     

  6. #6
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Wenn du auf LIMIT verzichten willst, dann kannst du meine Klasse so anwenden
    PHP-Code:
    <?php
    //Einbinden der Navigation-Klasse
    include_once('navigator.php');

    //Settings
    define('C_ITEM_PER_PAGE'25);
    define('C_NAV_RANGE'4);
    define('C_GET_NAV_PARAM''pageNr');


    //$_GET auswerten
    $currentPageNr $_GET[C_GET_NAV_PARAM];
    if (!
    $currentPageNr$currentPageNr 0;


    //TODO DB-Daten auslesen: Kein LIMIT verwenden, sondern alle Daten auslesen
    //Ich simuliere hier mal die Resultate mit $x Einträgen
    $rowCount 30;
    for(
    $i 0$i $rowCount$i++){
        
    $rows[$i] = "Eintrag #{$i}";
    }

    //Navigator erstellen
    $nav = new Navigator(count($rows), basename(__FILE__), C_ITEM_PER_PAGEC_NAV_RANGEC_GET_NAV_PARAM);
    $navBar $nav->jump($currentPageNr);

    //Erste anzuzeigende ID auslesen
    $firstId $nav->getFirstItemNrFromPageNr($currentPageNr);

    //Dei entsprechenden Zeilen aussuchen
    $selectedRows array_slice($rows$firstIdC_ITEM_PER_PAGE);

    //Datenausgabe
    echo $navBar;
    echo 
    "<hr />";
    echo 
    implode('<br />'$selectedRows);
    echo 
    "<hr />";
    echo 
    $navBar;

    ?>
    Sorry, hab grad keine Lust eine ganze Anleitung für MySQL-Navigationen zu schreiben.

    Nachtrag:
    Oder halt einfach googeln nach 'tutorial php mysql page'. Ergibt bei den ersten 4 Treffern bereits 3 Tutorials dazu:
    http://www.phpjabbers.com/php--mysql...ges-php25.html
    http://www.php-mysql-tutorial.com/wi...using-php.aspx
    http://www.designplace.org/scripts.php?page=1&c_id=25
    Geändert von Yaslaw (06.10.10 um 16:18 Uhr)
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  7. #7
    Divo1984 Divo1984 ist offline Mitglied Gold
    Registriert seit
    Aug 2010
    Beiträge
    128
    Das Thema ist zwar ein bisserl veraltet, aber da ich grad eine DB Umsetzung gemacht habe, hier mal mein Code:

    PHP-Code:
    <?php
    //Einbinden der Navigation-Klasse
    include_once('class_Navigator.php');
    //Datenbank und Config
    require 'class_MySql.php';
    require 
    'config.php';
    //Settings
    define('C_ITEM_PER_PAGE'1000);
    define('C_NAV_RANGE'12);
    define('C_GET_NAV_PARAM''pageNr');


    //$_GET auswerten
    if(isset($_GET[C_GET_NAV_PARAM]))
    {
        
    $currentPageNr $_GET[C_GET_NAV_PARAM];
    }
    else 
    {
        
    $currentPageNr 0;
    }

    $start = ($currentPageNr == 0) ? : ($currentPageNr) * C_ITEM_PER_PAGE;

    $mysql=new MySql;
    //Verbindung zur DB
    $mysql->con($host$db$user$pw);
    //Einträge zählen
    $mysql->query("SELECT count(id) anz FROM empfaenger");
    $anz $mysql->fetch_row();
    $anz $anz['anz'];
    //entsprechende Einträge mit LIMIT aus der DB holen
    $mysql->query("SELECT * FROM empfaenger ORDER BY id ASC LIMIT ".$start.", ".C_ITEM_PER_PAGE."");

    while(
    $rows=$mysql->fetch_row())
    {    
        
    //gewählte Daten anzeigen    
        
    print $rows['id']. " &nbsp;".$rows['username']."<br>";
    }
    //Navigator erstellen
    $nav = new Navigator($anzbasename(__FILE__), C_ITEM_PER_PAGEC_NAV_RANGEC_GET_NAV_PARAM);
    $navBar $nav->jump($currentPageNr);

    //Navigation einblenden
    echo "<hr />";
    echo 
    $navBar;

    ?>
    Alles basierend, auf der Class von Yaslaw
     

  8. #8
    Avatar von Napofis
    Napofis Napofis ist offline require 'brain.php';
    Registriert seit
    Jun 2007
    Ort
    Bayern
    Beiträge
    587
    Warum verwendet ihr nicht die entsprechende SQL Funktion?
    Code sql:
    1
    2
    3
    
    SELECT SQL_CALC_FOUND_ROWS `spalte 1`, `spalte 1`, ...
    FROM `Tabelle`
    LIMIT 0, 25
    Code sql:
    1
    
     SELECT FOUND_ROWS()

    Bei COUNT(`id`) müsst ihr aufpassen denn COUNT(`id`) != COUNT(*)
     

  9. #9
    Divo1984 Divo1984 ist offline Mitglied Gold
    Registriert seit
    Aug 2010
    Beiträge
    128
    Ich verwende count(id) da id mein Primary Key ist und ich somit jede ID zähle! Ist doch ausreichend um zu ermitteln, wieviele Reihen(Einträge) vorhanden sind!

    Edit: Ich hätte ebenfalls mysql_NUM_ROWS verwenden können
    Geändert von Divo1984 (10.01.12 um 06:10 Uhr)
     

Ähnliche Themen

  1. MySQL Ausgabe sortieren aber HTML-Tags dabei ignorieren
    Von medico im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 25.04.08, 14:00
  2. Ausgabe eienr csv-Datei begrenzen
    Von D@nger im Forum PHP
    Antworten: 10
    Letzter Beitrag: 22.08.06, 18:46
  3. Ausgabe der Zeichen begrenzen...
    Von markberg im Forum PHP
    Antworten: 3
    Letzter Beitrag: 26.08.05, 21:24
  4. Antworten: 4
    Letzter Beitrag: 12.06.05, 20:40
  5. Ausgabe begrenzen aber wie ?
    Von Xsdojo im Forum PHP
    Antworten: 6
    Letzter Beitrag: 05.03.04, 07:27