ilch Forum » Allgemein » HTML, PHP, SQL,... » array sortieren

Geschlossen
  1. #1
    User Pic
    skared Mitglied
    Registriert seit
    13.10.2007
    Beiträge
    42
    Beitragswertungen
    0 Beitragspunkte
    Hi
    Also ich will mit fgetcsv eine datei laden und dann nach einer bestimmten spalte sortieren lassen aber irgendwie schmeisst er mir alles durch einander.
    hier mal der code
    <?php
    require_once ('config.php');
    //How many rows of results would you like? (ex. Enter "10" for Top 10
    $limitresults=10;
    
    //How many characters long would you like each string before its replaced with "..."
    $trunication=30;
    
    //Location of your mani_ranks.txt file.
    //It can be a URL or a direct link to the file
    //(i.e. //http://server.com/mani_ranks.txt or data/mani_ranks.txt
    $manirankslocation="ftp://$user:$pass@$ftp_server/server/css23015/cstrike/cfg/mani_admin_plugin/data/mani_ranks.txt";
    $handle = fopen($manirankslocation, "r");
    
     
    	
        
    
    function compare ($x, $y)
    		{
    		if ($x[29] == $y[29])
    		return 0;
    		else if ($x[29] < $y[29])
    		return -1;
    		else
    		return 1;
    		}
    		
    
    $row = 0;
    
    while (($data = fgetcsv($handle, 10000, ",")) !== FALSE) {
    
    
    $num = count($data);
    usort($data, 'compare');
    
    
    $row_color = ($row % 2) ? $bgcolor2 : $bgcolor1;
    
    if($row < $limitresults){
    
    if(strlen($data[64]) > $trunication){
    
    
    echo "<tr>
    <td bgcolor='$row_color'>" . $data[3]. "</td>";
    echo "<td bgcolor='$row_color'>" . $data[64]. "</td>";
    echo "<td bgcolor='$row_color'>" . $data[29] .  " </td>";
    echo "<td bgcolor='$row_color'>" . $data[4]. "</td></tr>";
    }else{
    echo "<tr>
    <td bgcolor='$row_color'>" . $data[3] . "</td>";
    echo "<td bgcolor='$row_color'>" . $data[64]. "</td>";
    echo "<td bgcolor='$row_color'>" . $data[29] .  "</td>";
    echo "<td bgcolor='$row_color'>" . $data[4]. "</td></tr>";
    }
    
    }
    
    $row++;
    }
    
    fclose($handle);
    ?>

    Hat einer einen Tip für mich?
    Mfg Skared


    verwendete ilchClan Version: 1.1

    betroffene Homepage: externer Link
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Naja nicht wirklich, ich nehme mal an bei Index 29 steht ne Zahl drin?
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    skared Mitglied
    Registriert seit
    13.10.2007
    Beiträge
    42
    Beitragswertungen
    0 Beitragspunkte
    Ja genau ist die gleiche datei die ich schon mal gepostet hatte falls du dich erinnerst jede line ist ein player und in der line stehen halt ranking etc..
    mfg Skared
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ne könntest vielleicht irgendwo hochladen, damit ich mir das mal anschauen kann.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    skared Mitglied
    Registriert seit
    13.10.2007
    Beiträge
    42
    Beitragswertungen
    0 Beitragspunkte
    Das script ist schon online da ich keine entwicklungs umgebung hab. erreichbar unter externer Link
    oder einfach linke seite Server menü top 10 player anklicken.
    Die obere tabelle ist das alte script wo einfach die top player aufgelistet werden das untere sollte genauso aussehen nur nach den top messerkills sortiert.
    mfg Skared


    Zuletzt modifiziert von skared am 27.02.2008 - 01:18:31
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Mir gings eigentlich um eine mani_ranks.txt hab mit Google irgendwie keine gefunden.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    skared Mitglied
    Registriert seit
    13.10.2007
    Beiträge
    42
    Beitragswertungen
    0 Beitragspunkte
    Achso

    STEAM_0:1:11290812,84.147.115.219,1199199121,1,1416,34,19,48,1,0,6443,6642,15,25,51,18,46,11,8,4,14,27,0,0,0,2,0,3,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1356,178,4,0,0,0,3,3,3,0,0,0,11,3,42,8,[MerliN] »Mã†ê®êز«
    STEAM_0:1:5589521,217.238.54.135,1199199121,2,1400,15,17,60,0,0,4411,7104,13,23,70,44,51,10,16,15,1,47,0,0,0,5,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,1417,242,1,1,0,1,0,0,0,2,0,0,19,7,16,0,|nbk| Baiz
    STEAM_0:0:11520109,84.145.224.208,1199199121,3,1358,17,28,54,0,1,2871,6402,7,43,42,18,28,23,8,6,2,34,0,0,0,6,0,2,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,938,175,1,0,0,0,0,0,2,0,0,0,5,6,26,0,|nbk| Majin
    STEAM_0:1:4269726,84.163.220.186,1199198504,4,1347,36,23,56,1,0,5921,7859,4,35,65,30,47,15,20,11,19,36,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,942,227,1,0,0,2,0,0,0,0,0,0,19,12,18,5,Glasreiniger
    STEAM_0:1:16722743,84.113.156.156,1199199121,5,1329,55,29,57,0,0,6582,7920,20,37,50,45,47,8,16,17,5,46,0,0,1,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1266,240,2,0,0,9,0,1,0,1,0,0,25,39,11,1,Superbad/AUT/
    STEAM_0:1:10440421,84.151.205.118,1199199121,6,1306,9,16,39,0,0,2908,4671,6,21,44,11,33,12,2,3,15,23,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,618,132,5,0,0,0,0,2,1,0,0,0,0,3,30,4,|nbk| heppo
    STEAM_0:1:14552424,84.175.101.47,1199195874,7,1273,15,25,44,0,0,2681,6823,18,28,47,26,29,6,12,4,36,6,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,815,170,1,1,0,0,0,1,0,1,0,0,8,2,12,3,Ju.DE l high

    das ist der aufbau der mani ranks im norma lfall natürlich mit mehr lines.
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Dein Problem ist, dass du die Sortierung immer nur auf einer Zeile anwendest, da fgetcsv nur eine Zeile ausliest und du diese dann bearbeitest, um aber sortieren zu können, musst du erst alle Zeilen auslesen und dann sortieren.

    function compare($x, $y) {
        if ($x[29] == $y[29]) return 0;
        return $x[29] < $y[29] ? 1 : -1;
    }
    $cdata = array();
    while (($data = fgetcsv($handle, 10000, ",")) !== FALSE) {
        $cdata[] = $data;
    }
    usort($cdata,'compare');
    
    foreach ($cdate as $data) {
    //ausgabe
    }
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    skared Mitglied
    Registriert seit
    13.10.2007
    Beiträge
    42
    Beitragswertungen
    0 Beitragspunkte
    Hi ,ja genau das wars was ich wollte und die Erklärung kann ich sogar nach vollziehen zunge .
    Und denn tipp Fehler hab ich sogar auch gefunden lächeln
    Wie immer besten Dank

    Mfg Skared


    Zuletzt modifiziert von skared am 29.02.2008 - 01:42:09
    0 Mitglieder finden den Beitrag gut.
Geschlossen

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

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten