Tabellen nach höchstem Wert sortieren (Statistiken)

Ich finde keine Lösung, die Downloads nach dem größten Wert automatisch sortieren zu lassen.

Im Moment gibt es die Tabellen so aus, wie sie in Reihenfolge in der cfg.php stehen.

Hier der Script:
[PHP]<?php

if($_SESSION[‚logged_in‘]){

$order = $_GET['order']?$_GET['order']:'titel';
$fol = $_GET['fol']?$_GET['fol']:'DESC';
if($_GET['order']=="datum"){
    $fol = $_GET['fol'];
    $order = "datum ".$fol." , zeit";
}



$first = '#FFFFFF';
$second = '#f0f8ff';
$color = $first;
?>
meladie.de Header

Download Statistiken

<?php
foreach($tabelle as $val){
    ?>
<td width="80" bgcolor="<?php echo $color;?>"><?php echo $val; ?></td>
<?php
    $color = $color==$first?$second:$first;
}
?>
<?php $first = '#FFFFFF'; $second = '#f0f8ff'; $color = $first; $downloads = 0; foreach($tabelle as $val){
    $query = mysql_query("SELECT * FROM `".$val."`");
    while($Row = mysql_fetch_assoc($query)) {
        $downloads += $Row['clicks'];
    }
    ?>
<td bgcolor="<?php echo $color;?>"><?php echo $downloads;?></td>
<?php
     $color = $color==$first?$second:$first;
    $downloads = 0;
}
?>
Artist:
Downloads:
<?php $downloads = 0;
$first = '#FFFFFF';
$second = '#f0f8ff';
$color = $first;


foreach( $tabelle as $val ) {
    $sql = mysql_query("SELECT * FROM `".$val."`") or die(mysql_error());
    
        while( $row2 = mysql_fetch_assoc($sql) ) {
            $sql3 = mysql_query("SELECT * FROM `statistiken` WHERE `titel`='".mysql_real_escape_string($row2['titel'])."' ");
            if(mysql_num_rows($sql3)<1){
                if( $row2['filesize'] < 1 ) {
                    $filesize=0;
                }else {
                    $filesize=$row2['filesize'];
                }
                    $enter = mysql_query("INSERT INTO `statistiken` ( `id` , `titel` , `datum` , `zeit` , `clicks` , `filesize` , `last` , `tid` ) VALUES ( NULL , '".mysql_real_escape_string($row2['titel'])."' , '".$row2['datum']."' , '".$row2['zeit']."' , '".$row2['clicks']."' , '".$filesize."' , '".$row2['last']."' , '".$row2['id']."' ) ") or die("Error: ".mysql_error());
            }
            
        }
    
}    
    $sql2 = mysql_query("SELECT * FROM `statistiken` ORDER BY ".mysql_real_escape_string($order)." ".mysql_real_escape_string($fol));
    while( $row = mysql_fetch_assoc($sql2) ){
        $filesize = $row['filesize'];
        $filesize /= 1000000;
        $filesize = explode(".",$filesize);
        $filefront = $filesize[0];
        $fileback = substr($filesize[1],0,2);
        $last = $row['last'];
        $last = explode(" ",$last);
        $last[0] = explode("-",$last[0]);
        $lastfront = $last[0][2].".".$last[0][1].".".$last[0][0];
        $lastback = $last[1];
        echo "
                <tr align=\"center\" bgcolor=\"".$color."\">
                <td >".$row['tid']."</td>
                <td align=\"left\" style=\"color:#000000;\">".$row['titel']."</td>
                <td>".$row['datum']." ".$row['zeit']."</td>
                <td>".$row['clicks']."</td>
                <td>".$filefront.".".$fileback." MB</td>
                <td>".$lastfront." ".$lastback."</td>
                </tr>
             ";
            $downloads += $row['clicks'];
            $color = $color==$first?$second:$first;
    }


?>
ID <?php if($_GET['order']=="tid") echo $_GET['fol']=='DESC'?'↓':'&uarr';?> Titel <?php if($_GET['order']=="titel"){ echo $_GET['fol']=='DESC'?'↓':'&uarr';}?> Release <?php if($_GET['order']=="datum"){ echo $_GET['fol']=='DESC'?'↓':'&uarr';}?> Downloads <?php if($_GET['order']=="clicks"){ echo $_GET['fol']=='DESC'?'↓':'&uarr';}?> Filegröße <?php if($_GET['order']=="filesize"){ echo $_GET['fol']=='DESC'?'↓':'&uarr';}?> Letzter Download <?php if($_GET['order']=="last"){ echo $_GET['fol']=='DESC'?'↓':'&uarr';}?>
Downloads Gesamt: <?php echo $downloads; ?>
<?php

}
?>
[/PHP]Es geht im speziellen um diesen Abschnitt:

[PHP]

<?php
foreach($tabelle as $val){
    ?>
<td width="80" bgcolor="<?php echo $color;?>"><?php echo $val; ?></td>
<?php
    $color = $color==$first?$second:$first;
}
?>
<?php $first = '#FFFFFF'; $second = '#f0f8ff'; $color = $first; $downloads = 0; foreach($tabelle as $val){
    $query = mysql_query("SELECT * FROM `".$val."`");
    while($Row = mysql_fetch_assoc($query)) {
        $downloads += $Row['clicks'];
    }
    ?>
<td bgcolor="<?php echo $color;?>"><?php echo $downloads;?></td>
<?php
     $color = $color==$first?$second:$first;
    $downloads = 0;
}
?>
Artist:
Downloads:
[/PHP]

ganz andere frage: wenn du die zahlen der downloads einfach absteigend sortierst und fertig?

Nils aka XraYSoLo

Ist doch das, was ich will. ^^

mach aus DESC mal ASC dann sollte es gehen …ich denk das war es, was Xray dir sagen wollte

mich hat nur dieses riesengewusele gewundert, weils im grund nur eine

[php]

<?php $sql ="SELECT * FROM '".$val."' ORDER BY clicks DESC"; ?>

[/php]

sein sollte…

Nils aka XraYSoLo

Ohne dieses Wusel geht nichts mehr.
Ich habe zwei td’s.
Eine Angabe verschwindet, wenn ich mit DESC experementier.
Mir bringt es ja nichts, wenn da die Downloadzahlen stehen, aber nicht der Name dazu. ^^

So sieht dieser Abschnitt zurzeit aus (mit veränderten Angaben).

Baue ich deinen Schnipsel vielleicht an falscher Stelle ein?

Gibt es jemanden, der mir diesen Gefallen tun würde?

hmm hat zwar nichts mit deinem problem zu tun aber…
wenn ich das richtig sehe ist dein script anfaellig auf SQL injections

$sql3 = mysql_query(„SELECT * FROM statistiken WHERE titel='“.mysql_real_escape_string($row2[‚titel‘])."’ ");

das ist nur ein beispiel

Boah crass.
Danke. Wusste ich gar nicht.
Kann man den Thread vielleicht noch zu „Jobangebot“ umfunktionieren, weil ich es nicht selbst hinkriege und einige Sachen (unter anderem das Problem) gerne gemacht bekommen hätte?