tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
1124
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Willi42 Willi42 ist offline Grünschnabel
    Registriert seit
    Feb 2010
    Beiträge
    3
    Hallo ich habe folgendes Problem. Ich habe schon mir die Finger wund gegoogelt aber nichts gefunden was mir weiterhilft.
    Überall wo ich lese sind Beispiele mit mysql Datenbanken.

    Also mein Problem wie folgt:

    Ich möchte eine bestimmte Anzahl von Daten aus einer .csv Datei in php importieren und anzeigen lassen (Anzahl= 3 pro Seite).
    Ich habe mir ein script gebastelt was einigermaßen gut funktioniert. Es werden jedoch alle "gewünschten" Daten angezeigt.
    Ich möchte jedoch nicht alle daten anzeigen lassen sondern nur 3 pro Seite, wo man alle anderen Seiten blättern kann.

    Es werden jedoch alle Daten angezeigt . So sieht das ganze aus:

    PHP-Code:
    <?php
    // Welche Felder ausgegeben werden sollen...
    $wantedCells[] = "Hersteller";
    $wantedCells[] = "Herst.-Artikelnummer";
    $wantedCells[] = "Artikelbeschreibung";
    $dataperpage 3;
        

    $cellFormat["Hersteller"] = "<b>##text##</b><br>";
     
    $row 1// Anzahl der Arrays

    $handle fopen ("produkte.csv","r"); // Datei zum Lesen öffnen

    // Die erste Zeile mit den Spaltennamen auslesen
    $data fgetcsv ($handle1000";");
    if(
    is_array($data)) {
        foreach(
    $data AS $cellNr => $cellName) {
            
    $cellNamesArray[$cellNr] = $cellName;
        }
     }
     while ( (
    $data fgetcsv ($handle1000";")) !== FALSE ) { // Daten werden aus der Datei
     // in ein Array $data gelesen
     
    $num count ($data); // Felder im Array $data
     // werden gezählt

    $maxpage ceil($num $dataperpage); // Summe aller Seiten berechnen
    $itemfrom = ($pagenum-1) * $dataperpage;

    print 
    "<hr><br>";
     
    $row++; // Anzahl der Arrays wird
     // inkrementiert
     
    for ($c=0$c $num$c++) { // FOR-Schleife, um Felder des Arrays auszugeben
     // Es werden nur die Felder ausgegeben die im Array $wantedCells steht...
    if(in_array($cellNamesArray[$c], $wantedCells)) {
        if(
    $cellFormat[$cellNamesArray[$c]]) print str_replace("##text##"$data[$c], $cellFormat[$cellNamesArray[$c]]);
        else print 
    $data[$c] . "<br><br>";
     }
     }
     }
     
    fclose ($handle);

                if (
    $_GET['page'] != ""$page $_GET['page'];
                else 
    $page 1;  
       
                require_once(
    'numlinkfunctions.php');       
            
                
    numlinks($page2511'''demoparam=useless');
    ?>

    numlinkfunctions.php
    PHP-Code:
    <?php
    /* Function numlinks
     * Description: This function displays a page enumeration as you know it from google results 
     *
     * Parameters:   $pagenum        -> Number of the current page
     *               $maxpage        -> Number of all pages
     *               $pages_visible  -> Maximum number of pages to be displayed (usually a odd number)
     *               $scriptname     -> Optional - File to which a number links
     *               $get            -> Optional - to deliver custom GET parameters (e.g. foo=bar&email=bla@hotmail.com)
     * Return Value: NONE
     */
    function numlinks($pagenum$maxpage$pages_visible$scriptname=""$get="") {

        echo 
    '<table border="0" cellspacing="0" cellpadding="0" class="t-border"><tr>';
        if (
    $pagenum 1) {
            echo 
    '<td class="td-border"><a href="'.page_name(1$scriptname$get).'" class="numlinks">&laquo;</a></td>';   // first page
             
    echo '<td class="td-border"><a href="'.page_name(($pagenum-1), $scriptname$get).'" class="numlinks">Previous</a></td>';   // prev page
        
    } else {
            echo 
    '<td class="td-border numlinks-inactive">&laquo;</td>';   // first page
             
    echo '<td class="td-border numlinks-inactive">Previous</td>';   // prev page
        
    }    


        
        
    $i=1;
        while (
    $i <= $pages_visible){
            if (
    $pagenum-ceil($pages_visible/2) < 0) {  //wenn unterer Bereich
                
    if ($i == $pagenum) echo '<td class="td-border numhighlight">'.($pagenum).'</td>';
                else echo 
    '<td class="td-border"><a href="'.page_name($i$scriptname$get).'" class="numlinks">'.($i).'</a></td>';
                
            } else if (
    $pagenum+floor($pages_visible/2) > $maxpage) {  // wenn oberer bereich
                
    if($maxpage $pages_visible$j $maxpage-$pages_visible+$i;
                else 
    $j $i;
                
                if (
    $j == $pagenum) echo '<td class="td-border numhighlight">'.($pagenum).'</td>';
                else echo 
    '<td class="td-border"><a href="'.page_name($j$scriptname$get).'" class="numlinks">'.$j.'</a></td>';

                
            } else {  
    // wenn mittlerer bereich
                
    if ($i == ceil($pages_visible/2)) echo '<td class="td-border numhighlight">'.($pagenum).'</td>';
                else {
                    
    $j $pagenum-ceil($pages_visible/2)+$i;
                    echo 
    '<td class="td-border"><a href="'.page_name($j$scriptname$get).'" class="numlinks">'.$j.'</a></td>';
                }
            }
            if (
    $i == $maxpage) break;
            
    $i++;
        }
        

        
        
        if (
    $pagenum $maxpage){
            echo 
    '<td class="td-border"><a href="'.page_name(($pagenum+1), $scriptname$get).'" class="numlinks">Next</a></td>';  // next page
            
    echo '<td class="td-border"><a href="'.page_name($maxpage$scriptname$get).'" class="numlinks">&raquo;</a></td>';   // last page
        
    } else {
            echo 
    '<td class="td-border numlinks-inactive">Next</td>';   // first page
             
    echo '<td class="td-border numlinks-inactive">&raquo;</td>';   // prev page
        
    }    
        
        echo 
    '</tr></table>';
    }

    function 
    page_name($nr$scriptname$get="") {
        
    $scriptname.='?page='.$nr;
        if (
    $get != ''$scriptname.='&'.$get;
        return 
    $scriptname;
    }
    ?>
    Ich würde mich sehr freuen wenn Ihr mir weiterhelfen könnt.
     

  2. #2
    Avatar von Frezl
    Frezl Frezl ist offline Mitglied Brokat
    Registriert seit
    Oct 2003
    Beiträge
    473
    Ne Idee:

    Also ich blick in deinem Skript nicht ganz durch, aber prinzipiell würd ich es mit Hilfe der Schleifenvariable in der Ausgabe-Schleife lösen.

    PHP-Code:

    <?php

      
    // [...]

      
    $dataperpage 3;
      
    $firstonpage trim(htmlspecialchars($_GET['firstonpage'])); // hier kannst du auch etwas sauberer darauf prüfen, ob $firstonpage numerischen Inhalt hat

      
    for($i $firstonpage$i $firstonpage+$dataperpage$i++) {

        
    // Ausgabe
        
    echo $deinarray[$i];

      }

      echo 
    '<a href="'.$PHP_SELF.'?firstonpage='.$firstonpage+$dataperpage.'">nächste Seite</a>';

      
    // [...]

    ?>
    Grüße, Frezl
    Geändert von Frezl (25.02.10 um 22:22 Uhr)
     
    Wenn du das Gefühl hast "Cool, der Kerl konnte mir echt helfen!", dann teil es mir mit, indem du mich entsprechend bewertest!

  3. #3
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    öhm, du willst nur die ersten 3 Zeilen?
    Warum liest du alle ein?

    PHP-Code:
    while ( ($data fgetcsv ($handle1000";")) !== FALSE ){
        ...

    Wie wäre es mit
    PHP-Code:
    $data fgetcsv ($handle1000";"));
    for (
    $i=0$i<3$i++){
        ...
        
    $data fgetcsv ($handle1000";"));

     
    ---------------------------------------------------------------------------------------------------
    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

  4. #4
    Willi42 Willi42 ist offline Grünschnabel
    Registriert seit
    Feb 2010
    Beiträge
    3
    Nein ich will nicht nur die ersten drei Zeilen .... also nochmal von Anfang ich glaube ich habe mich nicht verständlich genug ausgedrückt :
    Mein Ziel ist es zwar alle Zeilen aus der .csv Datei einzulesen jedoch nur 3 Zeilen pro Seite anzeigen zu lassen.
    Alle anderen Zeilen sollen auf weiteren Seiten verteilt werden. Also immer wieder 3 pro Seite. Ich möchte diesen "Blättereffekt" haben.
    Soll jetzt keine aufwendige Javascript Effekt sein denn dazu habe ich die vorgefertigte numlinkfunctions.php (Eine schöne Pagebar) die ich lediglich in funktion bringen will. Diese wird wie schon im Ausgangsscript zu sehen durch require_once('numlinkfunctions.php'); eingebunden.
    Diese Pagebar soll in Verbindung mit meinen Datensätzen aus der .csv Datei funktionieren, das ist alles. Aber ich bekomme es nicht hin. Ich muss allerdings dazu sagen, dass ich ein "fortgeschrittener" Anfänger bin was php angeht. Ich verstehe viele Zusammenhänge und bin fleißig am lernen jedoch versteh ich nicht alles. Kurz gesagt ich bin kein Profi in diesem Gebiet. Deswegen wäre ich euch sehr verbunden wenn mir jemand sagen kann wie ich die numlinkfunctions.php zum laufen bekomme.
    Geändert von Willi42 (26.02.10 um 12:43 Uhr)
     

  5. #5
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Ah, sowas
    http://wiki.yaslaw.info/wikka/PhpJumpNavigator

    Und hier als Demo
    http://yaslaw.info/example/navigator.php

    Du musst nur noch das ganze verknüpfen....
     
    ---------------------------------------------------------------------------------------------------
    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

  6. #6
    Willi42 Willi42 ist offline Grünschnabel
    Registriert seit
    Feb 2010
    Beiträge
    3
    Ich werde mal schauen wie ich das ganze verknüpfen kann. Danke erstmal für die Hilfe.
    Geändert von Willi42 (27.02.10 um 00:58 Uhr)
     

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 21.08.09, 13:15
  2. nur bestimmte daten herausfiltern und anzeigen
    Von Compane im Forum XML Technologien
    Antworten: 19
    Letzter Beitrag: 14.07.08, 19:04
  3. Antworten: 22
    Letzter Beitrag: 08.05.06, 15:29
  4. Nur bestimmte Datei-Formen in Filelistbox anzeigen[VB6]
    Von Aarisch im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 02.07.03, 21:53
  5. Nur bestimmte Daten anzeigen
    Von Soccertipp im Forum PHP
    Antworten: 1
    Letzter Beitrag: 18.08.02, 03:36

Stichworte