[PHP] Prozentverteilung

Dieses Thema im Forum "Webentwicklung" wurde erstellt von klaxx, 12. November 2008 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 12. November 2008
    Prozentverteilung

    Moins,

    folgendes:
    Ich habe eine bestimmte Anzahl an Kunden, welche einen Umsatz machen.

    In der SQL:
    KDID|KDNAME|UMSATZ
    1 | Hans | 1500

    Nun wäre der AVG(Mittelwert) bei 1500.

    sagen wir es kommen noch nen paar weiterehinzu und wir haben einen mittelwert von 3500.

    Nun möchte ich ausgeben:

    xx Kunden = yy % haben einen Umsatz von 0,00€
    xx Kunden = yy % haben einen Umsatz, der unter dem MW liegt. ( x% = $umsatz < $mittelwert / 100 )
    xx Kunden = yy% haben einen Umsatz, der gleicht ( == )
    xx Kunden = yy% haben einen Umsatz, der über dem MW liegt (x% = $umsatz > $mittelwert / 100)

    Muss ich dafür einen "$gesamt_umsatz" benutzen, oder muss ich die einzelnen Leute in dem Umsatz auslesen und damit rechnen lassen?

    gruß

    Achja Mathe steh ich ganz schlecht

    EDIT
    Hab mal was hinbekommen,

    PHP:
    $umsatz_nichts  "SELECT COUNT(UMSATZ) FROM umsatz WHERE UMSATZ == 0" ;
    $umsatz_weniger  = ( "SELECT COUNT(UMSATZ) FROM umsatz WHERE UMSATZ >= 0"  $mittelwert );
    Die Frage nur obs stimmt. Sieht jemand schon einen Fehler im Code?
    Ich hab beschlossen, die einzelnen Umsätze als Anzahlen auszugeben und nacher die Prozente der einzelenen Anzahlen auszugeben.

    Hat jemand ne bessere Lösung?^^
     
  2. 12. November 2008
    AW: Prozentverteilung

    ich würde das mit between lösen
    http://sql.1keydata.com/de/sql-between.php


    als beispiel

    Code:
    $umsatz_nichts = "SELECT COUNT(*) FROM umsatz WHERE UMSATZ == 0";
    $umsatz_weniger = ("SELECT COUNT(*) FROM umsatz WHERE UMSATZ BETWEEN 1 AND ". $mittelwert); 
    $umsatz_gleich = ("SELECT COUNT(*) FROM umsatz WHERE UMSATZ == ". $mittelwert);
    $umsatz_größer = ("SELECT COUNT(*) FROM umsatz WHERE UMSATZ > ". $mittelwert);
    
    du willst doch damit wissen wie viele kunden in diese bereiche fallen odeR?

    den prozentwerd derer kannst du so ausrechnen

    Code:
    $gesammt_umsatz = $umsatz_nichts + $umsatz_weniger //etc
    ($umsatz_nichts / $gesammt_umsatz) * 100;
    
     
  3. 12. November 2008
    AW: Prozentverteilung

    Das ist meine ganze php datei:

    PHP:
    <html
    <head>
    </head>
    <body>
    <?php
    $link
    = mysql_connect ( "localhost" , "root" , "" )
        or die (
    "Keine Verbindung möglich" );

    mysql_select_db ( "aufgabe8" )
        or die (
    mysql_error ());



    $kdnr     $_GET [ 'kdnr' ];
    $kdname     $_GET [ 'kdname' ];
    $umsatz     $_GET [ 'umsatz' ];
    $schreiben  "INSERT INTO umsatz (KDNR, KDNAME, UMSATZ) VALUES (' $kdnr ',' $kdname ',' $umsatz ');" ;
    $ergebnis1 = mysql_query ( $schreiben ) or die ( mysql_error ());
    print 
    "Daten übergeben!" ;




    $anfrage = "SELECT COUNT(KDNR)FROM umsatz" ;
    $anfrage2 = "SELECT AVG(UMSATZ) FROM umsatz" ;

     

    $ergebnis2 = mysql_query ( $anfrage )  or die ( mysql_error ());
    $ergebnis3 = mysql_query ( $anfrage2 ) or die ( mysql_error ());
    print 
    "<br>" ;
     
    print 
    "<table>" ;
    for (
    $i = 0 $i < mysql_num_rows ( $ergebnis2 ); $i ++)
        {
            print 
    "<tr>" ;
            
    $datensatz     =     mysql_fetch_row ( $ergebnis2 );
            foreach(
    $datensatz  as  $feld )
                {
                    print 
    "<td> $feld  Gesamtzahl Kunden</td>" ;
                }
            print 
    "</tr>" ;
        }
      for (
    $i = 0 $i < mysql_num_rows ( $ergebnis3 ); $i ++)
        {
            print 
    "<tr>" ;
            
    $datensatz2     =     mysql_fetch_row ( $ergebnis3 );
            foreach(
    $datensatz2  as  $feld2 )
                {
                    print 
    "<td> $feld2  betr&auml;gt der mittlere Umsatz</td>" ;
                }
            print 
    "</tr>" ;
        }
      
    print 
    "</table>" ;

    #Prozenteuale Rechnungen
    $kunden_gesamt  $ergebnis2 ;
    $umsatz_nichts  "SELECT COUNT(*) FROM umsatz WHERE UMSATZ == 0" ;
    $umsatz_weniger  = ( "SELECT COUNT(*) FROM umsatz WHERE UMSATZ BETWEEN 1 AND " $ergebnis3 ); 
    $umsatz_gleich  = ( "SELECT COUNT(*) FROM umsatz WHERE UMSATZ == " $ergebnis3 );
    $umsatz_größer  = ( "SELECT COUNT(*) FROM umsatz WHERE UMSATZ > " $ergebnis3 );

    $ergebnis4 = mysql_query ( $umsatz_nichts )  or die ( mysql_error ());
    $ergebnis5 = mysql_query ( $umsatz_weniger ) or die ( mysql_error ());
    $ergebnis6 = mysql_query ( $umsatz_gleich )  or die ( mysql_error ());
    $ergebnis7 = mysql_query ( $umsatz_größer ) or die ( mysql_error ());
    print 
    " $ergebnis4 " ;

    mysql_close ( $link );
    ?>

    </body>
    </html>
    Die Frage: Wo steckt der Fehlerteufel der das ausgibt:

    Code:
    Daten übergeben!
    32 Gesamtzahl Kunden
    3650.4375 beträgt der mittlere Umsatz
    [B]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '== 0' at line 1[/B]
    
     
  4. 12. November 2008
    AW: Prozentverteilung

    auf die schnelle versuch mal ein ";" hinter deinen sql querers

    also
    Code:
    "SELECT COUNT(*) FROM umsatz WHERE UMSATZ == 0;"
    
    ah moment.. SQL != php

    Code:
     "SELECT COUNT(*) FROM umsatz WHERE UMSATZ = 0;"
    
     
  5. 12. November 2008
    AW: Prozentverteilung

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id #4' at line 1


    Habs von == und = umgeschrieben, jedoch bekomm ich den oben genannt Fehler != alter Fehler
     
  6. 12. November 2008
    AW: Prozentverteilung

    bei welchen sql kommant kommt der fehler nun?

    btw. versuch mal die klammern beim zuweisen der SQL queres wegzulassen.

    btw. was steht da effektiv in der variable $ergebnis3
    kann sein das $ergebnis3 != ein INT wert ist der den mittelwert als zahl darstellt?
     
  7. 12. November 2008
    AW: Prozentverteilung

    $ergebnis 3: Mittelwert

    PHP:
    $anfrage2 = "SELECT AVG(UMSATZ) FROM umsatz" ;

    $ergebnis3 = mysql_query ( $anfrage2 ) or die ( mysql_error ());
    Ich hab nun mal alles ausgeklammert mit Kommentaren was ich nicht ausgeben will, vorerst.
    Somit läuft erstmal nur das erste durch, was die "Nullen(0)" rausfiltern soll.

    Wenn ich dann
    PHP:
    $umsatz_nichts  "SELECT COUNT(*) FROM umsatz WHERE UMSATZ = 0" ;
    $ergebnis4 = mysql_query ( $umsatz_nichts )  or die ( mysql_error ());
    print 
    " $ergebnis4 " ;
    ausgeben lasse, bekomme ich als Meldung:Resource id #5 .

    Hast du ne Ahnung was das ist?
    gruß
     
  8. 12. November 2008
    AW: Prozentverteilung

    ah ok ich lese grade bei mysql_query solltest du kein ";" am ende der quere haben
    ich vermute mal die must diese Ressourcen-Kennung erst mal umwandeln

    mysql-fetch-array => http://de.php.net/manual/de/function.mysql-fetch-array.php

    so das sollte dir helfen, wenn du das umgesetzt/eingebaut hast.. sollte dan der wert den du brauchst (indem fall der count(*) wert zur verfüfung stehen und du kannst ihn ausgeben.
     
  9. 12. November 2008
    AW: Prozentverteilung

    Wenn ich es richtig verstanden habe, dann soll es im endeffekt alles so aussehen:
    PHP:
    $ergebnis4  mysql_query ( "SELECT COUNT(*) FROM umsatz WHERE UMSATZ = 0" ) ;

    print 
    " $ergebnis4 " ;
    gruß
     
  10. 12. November 2008
    AW: Prozentverteilung

    nein, ähm du must das ergebniss was in $ergebnis4 übergeben wird ( das ist noch kein int oder sonstiger wert sondern eine resource von phpmysql ) verarbeiten in dem du es mit mysql_fetch_array durchlaufst

    zb.:

    Code:
    <?php
    mysql_connect("localhost", "mysql_user", "mysql_password")
     or die("Keine Verbindung möglich: " . mysql_error());
    mysql_select_db("mydb");
    
    $result = mysql_query("SELECT id, name FROM mytable");
    
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
     printf ("ID: %s Name: %s", $row["id"], $row["name"]);
    }
    
     mysql_free_result($result);
    ?> 
    
    du bekommst durch das mysql_quere mehr oder weniger ( wenn iches richtig verstehe ) ein array mit zeilen zurück die du erst bearbetien must

    schau dir mal die seite an und versuch da bei dir einzubaun http://de.php.net/manual/de/function.mysql-fetch-array.php
     
  11. 12. November 2008
    AW: Prozentverteilung

    falsch, mysql liefert eine ergebniskennung.

    du musst diese anschließend mit mysql_fetch(assoc|row|array) verarbeiten um brauchbare resultate zu bekommen.

    //siehe wlan

    meta
    ~ closed
     
  12. 13. November 2008
    AW: Prozentverteilung

    PHP:
    <? php
    mysql_connect
    ( "localhost" "root" "" )
        or die(
    "Keine Verbindung möglich: "  mysql_error ());
    mysql_select_db ( "aufgabe8" );

    #Mittelwert
    $mittelwert  mysql_query ( "SELECT AVG(UMSATZ) FROM umsatz" );
    $row  mysql_fetch_row ( $mittelwert );
    #Umsatz == 0
    $gleich_0  mysql_query ( "SELECT COUNT(*)UMSATZ FROM umsatz WHERE UMSATZ = 0" );
    $row1  mysql_fetch_row ( $gleich_0 );
    #Umsatz < Mittelwert
    $weniger_mittelwert  mysql_query ( "SELECT COUNT(*)UMSATZ FROM umsatz WHERE(UMSATZ <  $row [ 0 ] )" );
    $row2  mysql_fetch_row ( $weniger_mittelwert );
    #Umsatz == Mittelwert
    $gleich_mittelwert  mysql_query ( "SELECT COUNT(*)UMSATZ FROM umsatz WHERE(UMSATZ =  $row [ 0 ] )" );
    $row3  mysql_fetch_row ( $gleich_mittelwert );
    #Umsatz > Mittelwert
    $groesser_mittelwert  mysql_query ( "SELECT COUNT(*)UMSATZ FROM umsatz WHERE(UMSATZ >  $row [ 0 ] )" );
    $row4  mysql_fetch_row ( $groesser_mittelwert );

    #----------------Prozentrechnung------------------#

    #Anzahl alle Kunden
    $anzahl_kunden  mysql_query ( "SELECT COUNT(KDNR)FROM umsatz" );
    $row5  mysql_fetch_row ( $anzahl_kunden );
    #Prozentrechnung
    #Prozent: Umsatz == 0
    $p_gleich_0  =  ( $row1 [ 0 ]* 100 ) /  $row5 [ 0 ] ;
    $row6  $p_gleich_0 ;
    #Prozente: Umsatz < Mittelwert
    $p_weniger_mittel  =  ( $row2 [ 0 ]* 100 ) /  $row5 [ 0 ] ;
    $row7  $p_weniger_mittel ;
    #Prozente: Umsatz == Mittelwert
    $p_gleich_mittel  =  ( $row3 [ 0 ]* 100 ) /  $row5 [ 0 ] ;
    $row8  $p_gleich_mittel ;
    #Prozente: Umsatz > Mittelwert
    $p_groesser_mittel  =  ( $row4 [ 0 ]* 100 ) /  $row5 [ 0 ] ;
    $row9  $p_groesser_mittel ;

    echo 
    "Kundenanzahl:  $row5 [ 0 ]  <br>" ;
    echo 
    "Mittelwert:  $row [ 0 ]  Euro<br>" ;
    echo 
    "Umsatz = 0 Euro:  $row1 [ 0 ]  Kunden sind  $row6  %<br>" ;
    echo 
    "Umsatz < Mittelwert:  $row2 [ 0 ]  Kunden sind  $row7  %<br>" ;
    echo 
    "Umsatz == Mittelwert:  $row3 [ 0 ]  Kunden sind  $row8  %<br>" ;
    echo 
    "Umsatz > Mittelelwert:  $row4 [ 0 ]  Kunden sind  $row9  %<br>" ;

    ?>
     
  13. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.