• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Tabellen nach höchstem Wert sortieren (Statistiken)

aJunkie

Mitglied
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;
    ?>
<link rel="stylesheet" type="text/css" href="../all.css" />
<meta name="robots" content="noindex, nofollow">
<div id="title"><a href="http://meladie.de/"><img src="../img/header.jpg" alt="meladie.de Header" height="126" width="945"/></a></div>
<h1>Download Statistiken</h1>
<table align="center" style="border:5px solid #000;font-size:1em;" cellspacing="0">
  <tr align="center" bgcolor="#f0f8ff">
    <td><b>Artist:</b></td>
    <?php
    
    foreach($tabelle as $val){
        ?>
    <td width="80" bgcolor="<?php echo $color;?>"><?php echo $val; ?></td>
    <?php
        $color = $color==$first?$second:$first;
    }
    ?>
  </tr>
  <tr align="center" bgcolor="#f0f8ff">
    <td><b>Downloads:</b></td>
    <?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;
    }
    ?>
  </tr>
</table>
<table align="center" style="border:5px solid #000000;font-size:1em;" cellspacing="0">
  <tr align="left "style="background:#f0ffff;">
    <th width="100"><a href="index.php?order=tid&fol=<?php echo $_GET['fol']=='DESC'?'ASC':'DESC';?>" target="_self"    >ID
      <?php if($_GET['order']=="tid") echo $_GET['fol']=='DESC'?'&darr;':'&uarr';?>
      </a></th>
    <th width="600"><a href="index.php?order=titel&fol=<?php echo $_GET['fol']=='DESC'&&$_GET['order']=='titel'?'ASC':'DESC';?>" target="_self"    >Titel
      <?php if($_GET['order']=="titel"){ echo $_GET['fol']=='DESC'?'&darr;':'&uarr';}?>
      </a></th>
    <th width="200"><a href="index.php?order=datum&fol=<?php echo $_GET['fol']=='DESC'?'ASC':'DESC';?>" target="_self"    >Release
      <?php if($_GET['order']=="datum"){ echo  $_GET['fol']=='DESC'?'&darr;':'&uarr';}?>
      </a></th>
    <th width="150"><a href="index.php?order=clicks&fol=<?php echo $_GET['fol']=='DESC'?'ASC':'DESC';?>" target="_self"    >Downloads
      <?php if($_GET['order']=="clicks"){ echo  $_GET['fol']=='DESC'?'&darr;':'&uarr';}?>
      </a></th>
    <th width="150"><a href="index.php?order=filesize&fol=<?php echo $_GET['fol']=='DESC'?'ASC':'DESC';?>" target="_self"    >Filegr&ouml;&szlig;e
      <?php if($_GET['order']=="filesize"){ echo  $_GET['fol']=='DESC'?'&darr;':'&uarr';}?>
      </a></th>
    <th width="200"><a href="index.php?order=last&fol=<?php echo $_GET['fol']=='DESC'?'ASC':'DESC';?>" target="_self"    >Letzter Download
      <?php if($_GET['order']=="last"){ echo  $_GET['fol']=='DESC'?'&darr;':'&uarr';}?>
      </a></th>
  </tr>
  <?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;
        }

    
    ?>
  <tr height="5px">
    <td></td>
  </tr>
  <tr align="center" style="outline:5px solid #000;" bgcolor="#FFFFFF">
    <td colspan="3"></td>
    <td colspan="2" style="padding:5px;">Downloads Gesamt:</td>
    <td><?php echo $downloads; ?></td>
  </tr>
</table>
<?php
    
}
?>
Es geht im speziellen um diesen Abschnitt:

PHP:
<table align="center" style="border:5px solid #000;font-size:1em;" cellspacing="0">
  <tr align="center" bgcolor="#f0f8ff">
    <td><b>Artist:</b></td>
    <?php
    
    foreach($tabelle as $val){
        ?>
    <td width="80" bgcolor="<?php echo $color;?>"><?php echo $val; ?></td>
    <?php
        $color = $color==$first?$second:$first;
    }
    ?>
  </tr>
  <tr align="center" bgcolor="#f0f8ff">
    <td><b>Downloads:</b></td>
    <?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;
    }
    ?>
  </tr>
</table>
 
ganz andere frage: wenn du die zahlen der downloads einfach absteigend sortierst und fertig?

Nils aka XraYSoLo
 
mich hat nur dieses riesengewusele gewundert, weils im grund nur eine

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

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?
 
Zuletzt bearbeitet von einem Moderator:
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?
 
Zurück
Oben