kostenloser Webspace werbefrei: lima-city


Mit MYSQL Rechnen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    max25

    max25 hat kostenlosen Webspace.

    Hi,

    bin leider nicht der ganz hellste in MYSQL und fange gerade damit an.

    Meine Frage:

    Würde gerne eine Rechnung in MYSQL machen die den Durchschnittswert berechnet und ein eine extra Spalte für jeden Benutzer speichert.

    Bsp.

    Richtige Antworten geteilt durch Falsche Antworten = Durchschnitt
    5/4 = 1,25

    Ausgabe

    Name======Richtig======Falsch======Durchschnitt
    Max25========5==========4===========1,25



    Zweck ist später die Tabelle in PhP so nach Durchschnitt sortiert Auszugeben.

    Ich hoffe das meine Frage verständlich ist und evt. kann mir ja wer helfen.


    mfg Max25




    Beitrag geaendert: 27.11.2006 1:49:22 von max25
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Das wäre kein Durchschnitt, sondern ein Verhältnis.

    Ich gehe davon, aus, dass deine Tabelle etwa so aussieht:

    Tabelle users
    ...
    richtig INT
    falsch INT
    durchschnitt FLOAT
    ...

    Und das Query wäre dann:
    UPDATE users SET durchschnitt=(richtig/falsch)

    Beachte, dass, wenn es 0 falsche Antworten gibt, du eine Division durch 0 hast !
  4. Autor dieses Themas

    max25

    max25 hat kostenlosen Webspace.


    Verhältnis meinte ich auch da sieht man das es schon fast 2 Uhr morgens war *g*.


    Also in der Tabelle hab ich nun erst mal

    Name als Text
    Richtig Int
    Falsch Int

    hier soll ich wahrscheinlich noch nee Spalte *Verhältnis* eintragen am besten in FLOAT. Bis dahin wehre mir noch alles klar. Nur nicht wohin ich das Query:

    UPDATE users SET durchschnitt=(richtig/falsch)

    hinschreiben soll ist mir noch nicht so klar.

    Mache das ganze hier über phpMyAdmi.

    mfg Max25
  5. hmmmmmm,
    ich denke mal, das soll für ein Quiz werden.
    Dann würde ich es so machen:

    Wenn das Quiz vorbei ist, und z.B.: in $richtig ist die anzahl der richtigen antworten, in $falsch die der falschen:
    (Die Spalte verhältnis habe ich Verhaltnis genannt)
    (Der Benutzername wird in $name gespeichert)
    (Die Tabelle mit den Daten habe ich quiz_daten genannt)

    $query_a=mysql_query("SELECT `Richtig`, `Falsch` FROM `quiz_daten` WHERE `Name` = " .$name. " LIMIT 1");
    $alte_daten = mysql_fetch_array($query_a);

    $neu_richtig = $alte_daten['Richtig'] + $richtig;
    $neu_falsch = $alet_daten['Falsch'] + $falsch;

    $neu_verhaltnis = $neu_richtig / $neu_falsch;

    mysql_query("UPDATE `quiz_daten` SET `Richtig` = '" .$neu_richtig. "', `Falsch` = '" .$neu_falsch. "', `Verhaltnis` = '" .$neu_verhaltnis. "' WHERE `Name` = '" .$name. "' LIMIT 1");

  6. hier soll ich wahrscheinlich noch nee Spalte *Verhältnis* eintragen am besten in FLOAT. Bis dahin wehre mir noch alles klar. Nur nicht wohin ich das Query:

    UPDATE users SET durchschnitt=(richtig/falsch)

    hinschreiben soll ist mir noch nicht so klar.


    Also, dieses Query berechnet für ALLE User in deiner Tabelle den Durchschnittswert neu. Wenn du immer nur 1 User updaten willst, dann musst du

    WHERE userID='.$userid.' LIMIT 1'
    noch ranhängen( Ich nehme an du verwendest ' ' um einen String in PHP zu kennzeichnen).
  7. Autor dieses Themas

    max25

    max25 hat kostenlosen Webspace.

    $conn = mysql_connect($host,$user,$pw);
    mysql_select_db ($db,$conn);



    $query_a = mysql_query('SELECT `Gewonnen`, `Verloren` FROM `Member` WHERE `Name` = ' .$name. ' LIMIT 1');
    $alte_daten = mysql_fetch_array($query_a);

    $neu_gewonnen = $alte_daten['Gewonnen'];
    $neu_verloren = $alet_daten['Verloren'];

    $neu_verhältnis = $neu_gewonnen / $neu_verloren;

    mysql_query('UPDATE `Verhältnis` = ' .$neu_verhältnis. ' WHERE `Name` = ' .$name. ' LIMIT 1');




    $sql = "SELECT Name,Gewonnen,Verloren,Verhältnis FROM Member ORDER BY `Verhältnis` DESC ";
    $result = mysql_query($sql);
    while($row = mysql_fetch_array($result))
    {
    echo($row['Name']);
    echo " ";
    echo($row['Gewonnen']);
    echo " ";
    echo($row['Verloren']);
    echo " ";
    echo($row['Verhältnis']);
    echo "<br><br>";
    }



    Soweit hab ich das jetzt aber da ist noch ein Fehler drin und evt kann ja jemand helfen.

    mfg Max25
  8. Welche Fehlermeldung kommt denn?


    $neu_gewonnen = $alte_daten['Gewonnen'];
    $neu_verloren = $alet_daten['Verloren'];



    mysql_query('UPDATE `Verhältnis` = ' .$neu_verhältnis. ' WHERE `Name` = ' .$name. ' LIMIT 1');

    Das müsste so heißen:
    (Überprüfe auch, ob umlaute als Spaltennamen OK sind)

    'UPDATE Member SET Verhältnis='.$neu_verhältnis.' WHERE Name='.$name.' LIMIT 1'

    Ansonsten, her mit den Fehlermeldungen !
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!