[Variablen] Durchschnitts-Variablen aus der DB sortiert mit Bezeichnung ausgeben!

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

  • [Variablen] Durchschnitts-Variablen aus der DB sortiert mit Bezeichnung ausgeben!

    Hallo,
    ich hoff ihr könnt mir weiterhelfen, sehe heute nur Zahlen und Buchstaben...

    Das Problem ist folgendes ich habe in einer Tabelle ca. 30 Felder, wo sich Zahlen befinden, von denen ich den Durchschnitt brauche, das mach ich mit
    PHP-Code:
    $sql="select AVG(a1) from tabelle WHERE RowID like '".$nr."' AND Datum " $suche " AND NOT a1<=2";
    $rs=mysql_query($sql) or die(mysql_error());
    $row=mysql_fetch_row($rs);
    $a1=$row[0];

    $sql="select AVG(a2) from tabelle WHERE RowID like '".$nr."' AND Datum " $suche " AND NOT a2<=2";
    $rs=mysql_query($sql) or die(mysql_error());
    $row=mysql_fetch_row($rs);
    $a2=$row[0];

    usw
    das klappt auch wunderbar, nun muss den ganzen Ergebnisse die 10 besten und die 10 schlechtesten auswerten und ausgeben, dazu benutze ich folgendes Script:

    PHP-Code:
    $max_outputs=5// Wie viele Ausgeben
    $sortierarray = array($a1,$a2,$a3,$a4,$b1,$b2,$b3,$b4,$b5)     ;
    asort($sortierarray); // in aufsteigender Reihenfolge sortieren
    while(list(,$val) = each($sortierarray)){
        
    $i++;
        echo 
    round($val,2) . "<br>"; / / Sortierte Werte ausgeben
        
    if($i>=$max_outputs) exit;

    Das klappt eigentlich auch, das Problem ist aber nun, das hierbei $a1 oder auch $b5 noch die Bezeichnungen brauchen, was diese Felder eigentlich sind, doch leider finde ich keine Möglichkeit diese noch mit zu benennen nachdem sie sortiert sind..

    Hoffe ihr versteht was ich meine, ist sicher was ganz einfaches, was ich übersehe...

    Vielen Dank im Vorraus für eure Hilfe!

    MfG
    -Micha-

  • #2
    das Problem ist aber nun, das hierbei $a1 oder auch $b5 noch die Bezeichnungen brauchen, was diese Felder eigentlich sind, doch leider finde ich keine Möglichkeit diese noch mit zu benennen nachdem sie sortiert sind..
    Benenn sie doch vorher!

    $werte = array('a1' => 17, 'a2' => 9, ...);

    dann sortieren und dann ausgeben.

    Kommentar


    • #3
      usw.
      Klingt nach einem Fehler im Datenbankdesign ... informier dich mal über Normalisierung.
      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Kommentar


      • #4
        Danke, das mit der Datenbank funktioniert alles!!

        Habe jetzt die Zeile mit folgender ersetzt:

        PHP-Code:
        $sortierarray = array("1"=>$a1,"2"=>$a2,"3"=>$a3,"4"=>$a4,"5"=>$b1,"6"=>$b2,"7"=>$b3,"8"=>$b4,"9"=>$b5); 
        Script funktioniert trotzdem noch wunderbar, und wie kann ich jetzt die Indizierung ausgeben, sadaß ich weiß welches Feld welches ist???

        meine Ausgabe ist ja mom:

        PHP-Code:
        echo round($val,2) . "<br>"; / / Sortierte Werte ausgeben 
        MfG

        Kommentar


        • #5
          Eigene Ansätze/Versuche?

          Kommentar


          • #6
            Ja sorry, ich sehe leider den Wald vor lauter Bäumen nicht mehr..

            werde mich wohl noch mal näher mit array´s befassen!

            Kommentar


            • #7
              Gut nun weiß ich das ich die Schlüssels mit:

              PHP-Code:
              $keys array_keys($sortierarray); 
              rankomme.

              doch leider bekomme ich die Ausgabe immer noch nicht hin...

              Kommentar


              • #8
                Hint:

                foreach($sortiertesarray as $kex => $value)

                das sollte dich schon mal ein stück weiterbrineg

                Kommentar


                • #9
                  Vielen Dank!


                  PHP-Code:
                  while(list(,$val) = each($sortierarray)){

                        foreach(
                  $sortierarray as $key=> $val){
                        
                  $i++;
                      echo 
                  $key ." - "round($val,2) . "<br>"// Sortierte Werte ausgeben
                      // Wenn maximale Ausgabe erreicht, dann raus aus der Schleife
                      
                  if($i>=$max_outputs) exit;
                  }
                           } 
                  funktioniert wunderbar !!
                  Danke nochmal, dann kann ich ja heute ruhig schafen


                  MfG

                  Kommentar

                  Lädt...
                  X