MySQL-Werte summieren
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzahl
avg
beitrag
beste methode
daten
einfacher schreiben
fallen
fehler
methode
mitglied
order
po
point
rangliste
result
schleifen
tabelle
username
variant
vielen dank
-
Hi,
ich habe in einer Datenbank einige Zahlen eingetragen.
Nun will ich diese Zahlen miteinander summieren.
Ich habe es schon so versucht (sowohl innerhalb als auch au?erhalb der while Schleife zum Liefern d. Ergebnisse), aber das klappt nicht:
echo array_sum($row["zahl"]);
Der gesamte Code sieht so aus:
<?PHP
include "dbconnect";
$sql = "SELECT * FROM sgh ORDER BY ringe DESC";
$result = mysql_query($sql) OR die(mysql_error());
$num_rows = mysql_num_rows($result);
echo "Es sind ".$num_rows." Zahlen vorhanden!<br><br>";
echo '<table border="5">';
while($row = mysql_fetch_assoc($result))
{
echo '<tr><td>';
echo $row['zahl'];
echo '</td></tr>';
}
echo '</table>';
echo array_sum($row["zahl"]);
?>
Danke f?r eure Hilfe im Voraus. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
also
$num_rows=mysql_query("SELECT * FROM " . $table_prefix . "mitglieder");
$gesamt = mysql_num_rows($num_rows);
# hier gibst du mit gesamt die anzahl der betroffenen tabellenzeilen aus, also in diesem falle alle, da kein "WHERE" gesetzt ist.
wenn du aber die inhalte, mehrerer tabellenzeilen "addieren" willst, tust du das folgenderma?en (zumindest mach ich?s immer so, vllt gibst ja noch ne andere l?sung)
$points_heute = "SELECT SUM(points) AS total FROM tabelle user";
$points_heute = mysql_query($points_heute);
$points_heute = mysql_fetch_array($points_heute);
echo $points_heute['total'];
mir sieht das bis heute noch sehr viel aus, aber ich kenne keine andere variante...
edit:
ich hab eben grad erst ma gemerkt, was du mit dein code machst, wie siehts denn aus, wenn du mysql_fetch_array nimmst.... damit m?sste es doch gehen, oder?
mfg
-
Hi,
hab jetzt mal das mit mysql_fetch_array probiert, hat sich aber nichts ver?ndert....
aber die methode mit dem $points_heute hat geklappt!
Vielen Dank!
EDIT: kann man statt SUM auch DIV, MUL oder SUB nehmen?? -
Hi,
ich hab jetzt schon einige Zeit danach gesucht, aber immer noch nichts gefunden, aber sum, avg, min,sqrt und max.
Bitte sagt mir einer ob es ?berhaupt geht zu subtraieren etc.
Ps: im Gro?en und Ganzen hab ich mich ja bis jetzt mittels der Try Methode durch PHP gew?hlt ;) -
Hi,
ich hab jetzt schon einige Zeit danach gesucht, aber immer noch nichts gefunden, aber sum, avg, min,sqrt und max.
Bitte sagt mir einer ob es ?berhaupt geht zu subtraieren etc.
Ps: im Gro?en und Ganzen hab ich mich ja bis jetzt mittels der Try Methode durch PHP gew?hlt ;)
moin... ich hab nochma geschaut, und den fehler gefunden, es geht in deinem falle auch leichter...
$i=0; # ist die erste pos. im neuen array
$sql = "SELECT * FROM ca_user_vor1 ORDER BY username DESC";
$result = mysql_query($sql) OR die(mysql_error());
$num_rows = mysql_num_rows($result);
echo "Es sind ".$num_rows." User vorhanden!<br><br>";
echo '<table border="5">';
while($row = mysql_fetch_assoc($result))
{
$points[$i] = $row['points']; #hier wird in den neuen array der aktuelle wert eingetragen
echo '<td>';
echo $row['points'];
echo '</td>';
$i++; #die array pos wird erh?t,
}
echo '</table>';
echo array_sum($points);
du h?ttest einen neuen array erzeugen m?ssen, da der array in der while schleife nur dort existiert, aber deine array_sum abfrage war ja ausserhalb. hab dir ma so gemacht, das es funkt, m?sstest nur wieder deine daten ?ndern, hatte sie ge?ndert, um bei mir zu testen...
edit nach lucas seinem beitrag:
auch ne m?glichkeit, kannte ich bisher auch nicht, nun bin ich auch schlauer... -
ranglisten schrieb:
moin... ich hab nochma geschaut, und den fehler gefunden, es geht in deinem falle auch leichter...
$i=0; # ist die erste pos. im neuen array
$sql = 'SELECT * FROM ca_user_vor1 ORDER BY username DESC';
$result = mysql_query($sql) OR die(mysql_error());
$num_rows = mysql_num_rows($result);
echo 'Es sind '.$num_rows.' User vorhanden!<br><br>';
echo '<table border='5'>';
while($row = mysql_fetch_assoc($result))
{
$points[$i] = $row['points']; #hier wird in den neuen array der aktuelle wert eingetragen
echo '<td>';
echo $row['points'];
echo '</td>';
$i++; #die array pos wird erh?t,
}
echo '</table>';
echo array_sum($points);
du h?ttest einen neuen array erzeugen m?ssen, da der array in der while schleife nur dort existiert, aber deine array_sum abfrage war ja ausserhalb. hab dir ma so gemacht, das es funkt, m?sstest nur wieder deine daten ?ndern, hatte sie ge?ndert, um bei mir zu testen...
Jop so stimmt des! ;)
Aber nen kleinen Sch?nheitsfehler hast du eingebaut!
Wobei man es nicht Sch?nheitsfehler nennen muss, aber man kann es halt einfacher schreiben! ;)
$sql = 'SELECT * FROM `ca_user_vor1` ORDER BY username DESC';
$result = mysql_query($sql) OR die(mysql_error());
$num_rows = mysql_num_rows($result);
echo 'Es sind '.$num_rows.' User vorhanden!<br><br>';
print '<table border='5'>';
while($row = mysql_fetch_assoc($result)) {
$points[] = $row['points']; #hier wird in den neuen array der aktuelle wert eingetragen
printf('<td>%s</td>', $row['points']);
}
print '</table>';
-
Hi,
ich hab jetzt schon einige Zeit danach gesucht, aber immer noch nichts gefunden, aber sum, avg, min,sqrt und max.
Bitte sagt mir einer ob es ?berhaupt geht zu subtraieren etc.
Ps: im Gro?en und Ganzen hab ich mich ja bis jetzt mittels der Try Methode durch PHP gew?hlt ;)
Die "mathematischen" Funktionen von MySQL sind auch meines Wissens nicht im PHP-Manual aufgef?hrt. Aber in der MySQL-Online-Doku:
http://dev.mysql.com/doc/mysql/de/mathematical-functions.html
MfG
alopex -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage