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

Rechnen in PHP

profimong

Neues Mitglied
Guten Abend,

ich habe eine Datenbank mit 12 Spalten (0=ID 1=Spiele 2=Tore usw).
Ich würde gern am Ende jeder Zeile einen Durchschnittswert fürs Tore schießen einfügen ( Tore / Spiele).

Meine Tabelle wird dynamisch gefüllt

PHP:
echo "<table id=centeredtable>\n";
echo "<tr id=firstline>
                <td class=name><div>Name</div></td>
                <td><div>Spiele gesamt</div></td>
                <td><div>Tore gesamt</div></td>
                <td><div>Minuten gesamt</div></td>
                <td><div>Gelbe gesamt</div></td>
                <td><div>Rote gesamt</div></td>
                <td class=spiele><div>Spiele 10/11</div></td>
                <td class=tore><div>Tore 10/11</div></td>
                <td class=minuten><div>Minuten 10/11</div></td>
                <td class=gelbe><div>Gelbe 10/11</div></td>
                <td class=rote><div>Rote 10/11</div></td>
      </tr>";
while ($row=mysql_fetch_row($result))
{
echo "<tr class=evenline>";
foreach ($row as $item) // jedes Element $item der Zeile $row durchlaufen
echo "<td>$item</td>";
echo "</tr>\n";
}
echo "</table>\n";
Wie kann schaffe ich es am Ende Jeder Zeile eine Zelle Durchschnitt einzufügen mit dem ich für jeden Spieler den Tordurchschnitt errechnen kann.

Ist es nötig, das ich ein der Datenbank ein Feld Durchschnitt anlege, oder kann ich es da ich ja für diese Feld in der Datenbank keine Werte habe auch in meiner Datei einfach ein <td></td> einfügen und dort die Werte errechnen.


mit
PHP:
$sql = "SELECT `ToreG` FROM `Statistik` WHERE `ID` = 1 LIMIT 0, 30 ";

bekomme ich ja die Tore des ersten Spielers raus, kann dieses ergebnis in eine Variable schreiben und damit arbeiten?
Vielen Dank
 
Zuletzt bearbeitet:
Ja, du kannst das Ergebnis in einer Variable speichern (mit fetch()). Dann kannst Du mit PHP damit rechnen. Du kannst den Durchschnitt natürlich auch erst im Script errechnen, doch wenn Du ihn dauerhaft speíchern möchtest, dann würde ich ihn in der Datenbank speichern.

Und wie man den Durchschnitt errechnet sollte doch hoffentlich klar sein? ;)

lg, freakXHTML
 
Danke für deine schnelle Antwort. Ich würde das zum Üben gerne im Script machen. Mir ist nur nicht klar wie ich der dynamischen Tabelle am Zeilenende eine Zelle zufüge. Wenn ich
PHP:
echo "<tr class=evenline>";
foreach ($row as $item) // jedes Element $item der Zeile $row durchlaufen
echo "<td>$item</td>";
echo "<td>NEUE ZEILE</td>";
echo "</tr>\n";
einfüge kommt zwar die Zelle aber dort kann ich ja nur einen Wert reinschreiben der dann in allen 25 Spalten ganz hinten steht.
 
Ich würde die Berechnung im MySQL-Statement vornehmen. Da Du die Daten alle darüber ausliest, kannst Du es auch gleich dort machen. Beispiel:

Code:
SELECT ( zahl1 * zahl2 ) / zahl3 AS durchschnitt
 
Das habe ich nicht verstanden. Kannst Du mir das bitte etwas genauer erklären. Und wie bekomme ich die letzte Zelle in meine Dynamische Tabelle.

Danke für Deine Hilfe
 
Indem Du dein Statement anpasst. Was genau Du da mit welcher Spalte in deiner Tabelle berechnen willst, weiß ich nicht. Daher kann ich auch nicht sagen was genau Du da anpassen müsstest.
 
Ich möchte den Wert der Spalte ToreG durch den Wert der Spalte SpieleG teilen und an jede Zeile ans Ende in eine neue Tabellenzeile schreiben die es aber noch nicht gibt weil ich nicht weiß wie ich diese anfüge.
Mit
PHP:
echo "<tr class=evenline>";
foreach ($row as $item) // jedes Element $item der Zeile $row durchlaufen
echo "<td>$item</td>";
echo "<td>NEUE ZEILE???????</td>";
echo "</tr>\n";
wird zwar eine neue Zelle an jede Spalte hinzugefügt dies kann ich aber nur einmal füllen und dieser Wert steht dann in jeder dieser Zeilen. Und nicht spezifisch für jeden Spieler.

Hier nochmal mein gesamter Code zur Übersicht
PHP:
<?php

$server    = "localhost";
$user    = "user";
$pass    = "pass";
$database = "db";
$table    = "Statistik";

$verbindung = mysql_connect($server, $user, $pass)
    or die ("verbindung zu sql geht nicht");

mysql_select_db($database, $verbindung);


// SQL-Anfrage: Ergebnis ist stets eine Tabelle
$sql = "SELECT NName, SpieleG, ToreG, MinutenG, GelbeG, RoteG, Spiele, Tore, Minuten, Gelbe, Rote FROM $table";

// Anfrage ausführen
$result=mysql_query($sql) or die("Fehler im SQL-Kommando $sql");


// Tabelle in HTML darstellen
echo "<table id=centeredtable>\n";
echo "<tr id=firstline>
                <td class=name><div>Name</div></td>
                <td><div>Spiele gesamt</div></td>
                <td><div>Tore gesamt</div></td>
                <td><div>Minuten gesamt</div></td>
                <td><div>Gelbe gesamt</div></td>
                <td><div>Rote gesamt</div></td>
                <td class=spiele><div>Spiele 10/11</div></td>
                <td class=tore><div>Tore 10/11</div></td>
                <td class=minuten><div>Minuten 10/11</div></td>
                <td class=gelbe><div>Gelbe 10/11</div></td>
                <td class=rote><div>Rote 10/11</div></td>
      </tr>";
while ($row=mysql_fetch_row($result))
{
echo "<tr class=evenline>";
foreach ($row as $item) // jedes Element $item der Zeile $row durchlaufen
echo "<td>$item</td>";
echo "</tr>\n";
}
echo "</table>\n";
?>
 

Dann mach es doch auch :)

den Wert der Spalte ToreG durch den Wert der Spalte SpieleG teilen

also

Code:
ToreG / SpieleG

und an jede Zeile ans Ende in eine neue Tabellenzeile schreiben

also erstmal im Statement ergänzen

Code:
SELECT NName, SpieleG, ToreG, MinutenG, GelbeG, RoteG, Spiele, Tore, Minuten, Gelbe, Rote, (ToreG / SpieleG) AS durchschnitt FROM $table

die es aber noch nicht gibt weil ich nicht weiß wie ich diese anfüge.

Die Ausgabe im HTML brauchst Du dann nicht anpassen, da Du bei

Code:
foreach ($row as $item) // jedes Element $item der Zeile $row durchlaufen
echo "<td>$item</td>";

die Ausgabe bereits erhälst.
 
Zurück
Oben