Sortierung von Datenbank einträgen.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sortierung von Datenbank einträgen.

    Hallo.

    Und zwar ich habe da ein kleines problem...

    Derzeit schreibe ich ein CMS welches unter anderem eine User-Toplist enthält.
    Die einzelnen Punkte werden einzeln in einer Datenbank tabelle gespeichert und bei auslesen zusammen gezählt... Dies mache ich um eine Statistik für einen User anzuzeigen für was der jenige punkte bekommen hat.

    Das ganz funktioniert(e) auch soweit... Seit nunmehr 2 Tagen aber funktioniert das ganze komischerweise nicht mehr.
    Die User werden nicht mehr nach punkten sortiert.

    Das snippet wodrum es sich handelt:
    PHP-Code:
        $topuser_tmp $dbase->handle('select','user_points','*','','uid DESC'); // aufrufen der Datenbank einträge.
        
    foreach($topuser_tmp AS $k => $v) { // Die einträge durchschleifen und die punkte zusammen zählen.
            
    @$tu[$v['uid']] += $v['points'];
        }
        
    arsort($tu); // Dieses Array dann Absteigend sortieren.

        
    $k=0;
        foreach(
    $tu AS $key => $value) {
            
    $arr['topuser'][$k]['place'] = ($k 1).'.'// Platzierung
            
    $arr['topuser'][$k]['name'] = get_profile($key,1,8); // Profil Initialisieren
            
    $arr['topuser'][$k]['points'] = get_points($key).' Punkte'// Die puznkte über eine funktion auslesen.
            
    if(!in_seo_db('user','profile',$key)) { // SEO Einträge überprüfen und ggf. neuen Eintrag anlegen.
                
    include_seo_db('user','profile',$key,get_nick($key));
            }
            
    $k++;
        }
        for(
    $c=$k;$c<8;$c++) { // Diese Schleife füllt nur die restlichen Felder auf wenn sie leer sind.
            
    $arr['topuser'][$c]['name'] = '&nbsp;';
            
    $arr['topuser'][$c]['points'] = '&nbsp;';
        } 
    Ich weiss das dass doppelte durchschleifen der Arrays nicht grad die toplösung ist. Aber nur so hatte ich bis vor kurzem das Ergebniss das es alles richtig sortiert war.

    Vielleicht erkennt einer von euch ja nen fehler oder hat anderweitig tips wie ich das ganze mit der Sortierung besser realisieren kann.

    das ganze im EInsatz findet ihr auf:
    RanaRex - Feel the Kings » Start
    Auf der Startseite unten rechts

    Ich bedanke mich schonmal im vorraus.

  • #2
    Kann direkt entwarnung geben
    Habe es nun doch selbst gelöst...
    Das problem war das ich die abfrage in meiner Klasse standart gemäß auf 100 einträge limitiert habe...

    ich habe jetzt
    PHP-Code:
        $topuser_tmp $dbase->handle('select','user_points','*','','uid DESC'); // aufrufen der Datenbank einträge.
        
    foreach($topuser_tmp AS $k => $v) { // Die einträge durchschleifen und die punkte zusammen zählen.
            
    @$tu[$v['uid']] += $v['points'];
        }
        
    arsort($tu); // Dieses Array dann Absteigend sortieren. 
    </span></span>in
    PHP-Code:
        $tu = array();
        
    $topuser_tmp $dbase->handle('select','user_points','DISTINCT(uid)','','uid DESC');
        foreach(
    $topuser_tmp AS $k => $v) {
            
    $tu[$v['uid']] = get_points($v['uid']);
        }
        
    arsort($tu); 
    geändert... und es funktioniert wieder.

    Kommentar

    Lädt...
    X