kostenloser Webspace werbefrei: lima-city


Große Rechnung mit mysql und php

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    no-smoke

    Kostenloser Webspace von no-smoke

    no-smoke hat kostenlosen Webspace.

    Ich habe hier ein richtig großes Problem, wozu ich bei Google in diesem Maßstab nichts gefunden habe.

    Ich habe drei Tabellen in einer mysql-DB: schueler_leaufe, schueler_spon und schueler_teilnehmer.

    Ich habe nun schon sehr viele Rechnungen per php damit ausführen lassen und alles funktioniert wunderbar, doch jetzt muss ich noch eine Datei schreiben die ein gesamtergebnis ausgibt und das erscheint mir fast unmöglich.

    Aus der schueler_teilnehmer db wird eine id gelesen. Diese id wird an die schueler_spon und die schueler_leaufe weitergegeben. Darauf hin werden in beiden Tb alle Zahlen einer Spalte addiert wo die id dieser entspricht. Nun werden diese beiden Zahlen multipliziert.
    Bis hierhin funktioniert es, aber nun muss das für jede id gemacht werden und danach müssten alle Ergebnisse wieder addiert werden.
    Wie mache ich das?

    Hier mal als Skizze:

    spon_sponsoren: 5+2+6+4=17
    spon_leaufe: 1+1+1+1+1+1=6
    Dann: 17*6

    Jetzt weiß ich nicht weiter, wie ich es machen soll: also das mit allen ids und dann die Ergebnisse addieren.

    Beitrag zuletzt geändert: 4.4.2010 14:04:32 von no-smoke
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Lasse die Schleife durchlaufen und sende dann in der Schleife den Befehl für den Datenbankeintrag. Da du für die Rechnung immer die Variablen der aktuellen Zeile nimmst, gibt es auch immer einen Eintrag den aktuellen Werten entsprechend.
  4. Autor dieses Themas

    no-smoke

    Kostenloser Webspace von no-smoke

    no-smoke hat kostenlosen Webspace.

    drafed-map schrieb:
    Lasse die Schleife durchlaufen und sende dann in der Schleife den Befehl für den Datenbankeintrag. Da du für die Rechnung immer die Variablen der aktuellen Zeile nimmst, gibt es auch immer einen Eintrag den aktuellen Werten entsprechend.

    Ich bleibe ja schon dabei hängen, wie ich die Rechnung für alle IDs durchlaufen lassen kann.

    Beitrag zuletzt geändert: 4.4.2010 14:08:28 von no-smoke
  5. no-smoke schrieb:
    Ich bleibe ja schon dabei hängen, wie ich die Rechnung für alle IDs durchlaufen lassen kann.
    Du hast ja eine Schleife, in der Schleife verwendest du immer die Werte, die in $row sind, oder wie du das eben benannt hast. Diese Werte werden automatisch bei jedem Schleifendurchlauf geändert.
  6. Autor dieses Themas

    no-smoke

    Kostenloser Webspace von no-smoke

    no-smoke hat kostenlosen Webspace.

    drafed-map schrieb:
    no-smoke schrieb:
    Ich bleibe ja schon dabei hängen, wie ich die Rechnung für alle IDs durchlaufen lassen kann.
    Du hast ja eine Schleife, in der Schleife verwendest du immer die Werte, die in $row sind, oder wie du das eben benannt hast. Diese Werte werden automatisch bei jedem Schleifendurchlauf geändert.

    Tut mir leid, aber von mysql verstehe ich noch nicht so viel.
    Meine Rechnung sieht so aus:
    echo "$vorname $nachname $klasse $schule";
    echo "<hr>";
    echo "<b>Allgemeine Informationen:<br></b><br>";
    echo "<table border='1' bgcolor='#FFF58F'><tr>";
    
    
         $result_anzahl_runden = mysql_query ("select * from spon_leaufe where barcode_er='$barcode'");
    
         $anzahl_runden = mysql_num_rows($result_anzahl_runden);
         echo "<td>Bisher gelaufene Runden: ".$anzahl_runden."</td>";
    
    
         $query_geld_runde = mysql_query("select sum(betrag_sp) from spon_sponsoren where barcode_usr='$barcode'");
    
    list($geld_runde) = mysql_fetch_row($query_geld_runde);
    echo "<td>Geld pro Runde: ".$geld_runde."€</td>";
    
      $geld_gesamt = $anzahl_runden * $geld_runde;
    
    echo "<td>Bisher erlaufenes Geld: ".$geld_gesamt."€</td>";
    
    echo "</tr></table><br>";

    Ich sage ihm immer das er das nur fie machen soll wo halt id ...

    Aber die ID automatisch ändern wie mache ich das.
    Manuell amche ich das über die Adresszeile:
    index.php?id=./viewer/gelaufen/schueler_detail.php&dk=00000000033
  7. Schau dir mal an, was du z.Z. verwendest und ob das hier nicht vielleicht besser geeignet währe. Dann würst du das mit dem Schleifendurchlauf haben und gleich noch ein Array, welches die Spaltennamen als Key-Namen verwendet.
    while($row = mysql_fetch_assoc($query_geld_runde)) { // schleife packt die Werte des aktuell durchlaufenen Datensatzes immer in das array $row
    	// rechnung
    	// datenbakeintrag
    } // ende der schleife
  8. Autor dieses Themas

    no-smoke

    Kostenloser Webspace von no-smoke

    no-smoke hat kostenlosen Webspace.

    drafed-map schrieb:
    Schau dir mal an, was du z.Z. verwendest und ob das hier nicht vielleicht besser geeignet währe. Dann würst du das mit dem Schleifendurchlauf haben und gleich noch ein Array, welches die Spaltennamen als Key-Namen verwendet.
    while($row = mysql_fetch_assoc($query_geld_runde)) { // schleife packt die Werte des aktuell durchlaufenen Datensatzes immer in das array $row
    	// rechnung
    	// datenbakeintrag
    } // ende der schleife


    Ich weiß zwar nicht ob ich das jetzt falsch verstanden habe, aber das Problem ist ja das er die noch addieren muss. Ich sage mal so es können 10 Einträge mit der id 1 darin seien, die er addieren soll. Da hilft es mir doch nicht wenn er immer die nächste Spalte in ein array packt.

    Beitrag zuletzt geändert: 4.4.2010 20:01:13 von no-smoke
  9. dann definierst du vorher einfach einmal eine variable $ges_ergebnis und lässt darauf aufaddieren:

    $ges_ergebnis = 0;
    while($row = mysql_fetch_assoc($query_geld_runde)) { // schleife packt die Werte des aktuell durchlaufenen Datensatzes immer in das array $row
    	// rechnung
    	// datenbakeintrag
    	$ges_ergebnis += $row[spaltenname];
    
    } // ende der schleife
    echo $ges_ergebnis;


    am ende hast du alle werte auf die eine variable aufaddiert

    greetz
  10. Autor dieses Themas

    no-smoke

    Kostenloser Webspace von no-smoke

    no-smoke hat kostenlosen Webspace.

    sun-flash schrieb:
    dann definierst du vorher einfach einmal eine variable $ges_ergebnis und lässt darauf aufaddieren:

    $ges_ergebnis = 0;
    while($row = mysql_fetch_assoc($query_geld_runde)) { // schleife packt die Werte des aktuell durchlaufenen Datensatzes immer in das array $row
    	// rechnung
    	// datenbakeintrag
    	$ges_ergebnis += $row[spaltenname];
    
    } // ende der schleife
    echo $ges_ergebnis;


    am ende hast du alle werte auf die eine variable aufaddiert

    greetz

    Also erstmal vielen Dank an euch beide.
    Ich habe jetzt jedoch noch Verständnisprobleme.
    Ich habe es nun hinbekommen, dass ich ich mir über echo "$geld_gesamt €"; alle Zahlen untereinander anzeigen lassen kann.
    Nun muss ich diese Variable ja im Prinzip nur immer addieren lassen, aber wie.

    Beu euren Lösungen scheint mir immer die Multiplikation zu fehlen.
    Hier der jetzige Teil.
    list($geld_runde) = mysql_fetch_row($query_geld_runde);
    
      $geld_gesamt = $anzahl_runden * $geld_runde;

    Es geht also um die Variable $geld_gesamt die addiert werden muss. Oder habe ich das alles nur falsch verstanden.
    Wie gesagt habe noch nicht so viel mit mysql gearbeitet.

    Beitrag zuletzt geändert: 5.4.2010 11:05:01 von no-smoke
  11. Also erstmal vielen Dank an euch beide.
    Ich habe jetzt jedoch noch Verständnisprobleme.
    Ich habe es nun hinbekommen, dass ich ich mir über echo "$geld_gesamt €"; alle Zahlen untereinander anzeigen lassen kann.
    Nun muss ich diese Variable ja im Prinzip nur immer addieren lassen, aber wie.


    $ges_ergebnis += $row[spaltenname];


    auf die vordere variable wird die hintere variable aufaddiert;)

    Beu euren Lösungen scheint mir immer die Multiplikation zu fehlen.


    ich verstehe leider nicht so 100%ig was du genau multiplizieren willst, ansonsten ist der multiplikationsoperater im algemeinen "*"
  12. Autor dieses Themas

    no-smoke

    Kostenloser Webspace von no-smoke

    no-smoke hat kostenlosen Webspace.

    Beu euren Lösungen scheint mir immer die Multiplikation zu fehlen.


    ich verstehe leider nicht so 100%ig was du genau multiplizieren willst, ansonsten ist der multiplikationsoperater im algemeinen "*"
    [/quote]
    Ich habe doch den Code Teil oben geschickt.
    Das mit dem addieren geht so nicht da vorher noch multipliziert werden muss!
  13. Du müsstest doch inzwischen wissen, wie das funktioniert. Mit * multipliziert man, mit + addiert man. PHP berücksichtigt Punkt vor Strich. Klammern kann man auch verwenden. Wie das mit dem MySQL funktioniert wurde auch gesagt. Ich verstehe leider nicht exakt, was du brauchst, da ich grad neben her noch mehrere Sachen mache, aber du hast doch inzwischen alle Grundlagen vor gelegt bekommen, um das selbst zu erledigen.
  14. 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!