Antworten auf deine Fragen:
Neues Thema erstellen

Addieren mit php

strichcode

Nicht mehr ganz neu hier

Hallo!
Für Euch ist es bestimmt ganz einfach, aber ich finde hier nach langen googlen auch nicht die richtige Lösung für mich:
Ich möchte bei der Ausgabe von Daten aus einer DB zwei oder drei zahlen addieren und ausgeben.

Beispiel:
<?php
$ergebnis = mysql_query($abfrage);
while ($daten = mysql_fetch_array( $ergebnis, MYSQL_ASSOC)) {
echo '
<tr>
<td>...</td><td>'.$daten['KAPAZITAET'].' + '.$daten['ZUS_BETTEN_1'].'</td><td>...</td>
</tr>
'
;}?>

In meinem Script schreibt er nun beispielsweise 50+10, ich hätte dort aber gerne eine 60 stehen.

Ich finde über google nur Informationen über das Zusammenaddieren ganzer Spalten, aber nichts über das Addieren von zwei Zahlen, die ich doch eigentlich schon im query habe?

Meine Lieblings-Anfänger-Seite: schattenbaum.net erklärt das addieren in php so:
$addition = $zahl1 + $zahl2;
echo $addition;

Damit habe ich jetzt eine Weile rumgedocktert, komme aber nicht weiter, weil ich wahrscheinlich Reihenfolge oder Syntax nicht richtig schreibe.

Könnt Ihr mir weiter helfen?
Lieben Dank

ps: warum kann ich den code nicht mehr in den code-tag einfügen? Gibt es den Button nicht mehr?
 

MyBad

localhorst

Hi!

Du musst vorher rechnen und anschließend das Ergebnis per "echo" ausgeben:
PHP:
$ergebnis = $daten['KAPAZITAET'] + $daten['ZUS_BETTEN_1'];
echo $ergebnis;

Also genau so, wie im Beispiel auf Schattenbaum.net. Aktuell gibst du nur einen zusammengesetzten String aus.
 
Zuletzt bearbeitet:

dcmagie

Auf der Suche

Du kannst doch in dein Mysqlbefehl bei Select gleich rechnen wie zum Beispiel:

SELECT
Feld 1,
Feld 2,
(((Zahl1) + (zahl2))) AS ergebnis
FROM
Tabelle

Wenn du alle Zahlen aller Datensätze summieren willst dann musst halt mit sum arbeiten. Dann werden alle DS berücksichtigt je nachdem wie deine whereklausel aufgebaut ist.
SELECT
Feld 1,
Feld 2,
SUM((((Zahl1) + (zahl2))) )AS ergebnis
FROM
Tabelle

Siehe hier welche Mathematischen Funktionen du schon beim Select anwenden kannst:
 

Pixelaner

Der Pixelaner

Hi,

da war der Herr dcmagie etwas fixer. Lass einfach die Datenbank für dich rechnen. Dies bedeutet auch eine leichte Performance-Steigerung deines Scripts.
 

strichcode

Nicht mehr ganz neu hier

Danke, daß Ihr mir helfen wollt.
Ich fürchte, ich hab's immer noch nicht.

Meine Abfrage lautet:
$abfrage = "SELECT * FROM dbname WHERE irgendwas LIKE 'on'";

Dann geht es wie oben genannt weiter mit dem Code. Ich fülle mein html mit den Inhalten der einzelnen DB-Feldern. z.B.

<?php
$ergebnis = mysql_query($abfrage);
while ($daten = mysql_fetch_array( $ergebnis, MYSQL_ASSOC)) {
echo '
<tr>
<td>...</td><td>'.$daten['KAPAZITAET'].'</td><td>...</td>
</tr>
'
;}?>

Der Versuch mit dem was MyBAD schreibt:
$ergebnis = $daten['KAPAZITAET'] + $daten['ZUS_BETTEN_1'];
echo $ergebnis;
so etwas einzufügen scheitert mit:
Parse error: syntax error, unexpected '$ergebnis' (T_VARIABLE), expecting ',' or ';' in /.../start.php on line 152

Ebenso habe ich Probelme mit dem was dcmagie und Pixelaner vorschlagen so meine Probleme, weil ich ja schon
Select *
schreibe um an alle Daten zu kommen.

Ich hänge (glaube ich) an der Schreibweise vom Ganzen fest, oder?
Oder kann ich zwei SELECT-Fragen in einem schreiben?


PS, ich habe immer noch nicht gefunden, wie ich den Code hier übersichtlich darstellen kann, in meiner Eingabemaske hier gibt es keinen Code-Button mehr dafür.
 

hub

nicht ganz neu hier

Moin,
keine 2. Abfrage, dcmagie meint sicher etwa in der Art:
$abfrage = "SELECT *, KAPAZITAET + ZUS_BETTEN_1 AS ergebnis FROM dbname WHERE irgendwas LIKE 'on'";
Wobei dbname sicher der Tablename sein soll?

Gruß Ulli
 

dcmagie

Auf der Suche

Moin,
keine 2. Abfrage, dcmagie meint sicher etwa in der Art:
$abfrage = "SELECT *, KAPAZITAET + ZUS_BETTEN_1 AS ergebnis FROM dbname WHERE irgendwas LIKE 'on'";
Wobei dbname sicher der Tablename sein soll?

Gruß Ulli
Ja das meinte ich: Und wenn man nur eine Summe braucht aller Datensätze dann kann man mit der Funktion Sum() arbeiten darf dann aber nicht Group by vergessen wenn man auch andere Felder mit ausgibt hatte ich vergessen zu sagen.
 

strichcode

Nicht mehr ganz neu hier

Ah, mit einem Komma kann ich der Abfrage so zu sagen die Berechnung beifügen?!
Ja dbname ist Tabellenname, ein Fehler von mir.

Wie kann ich die Summe jetzt ausgeben?
<?php
$ergebnis = mysql_query($abfrage);
while ($daten = mysql_fetch_array( $ergebnis, MYSQL_ASSOC)) {
echo '
<tr>
<td>...</td><td>'.$daten['KAPAZITAET'].'</td><td>HIER DIE SUMME</td>
</tr>
'
;}?>

Schreibe ich dort
<td>...</td><td>'.$daten['KAPAZITAET'].'</td><td>'$ergebnis'</td>
bekomme ich
Parse error: syntax error, unexpected '$ergebnis' (T_VARIABLE), expecting ',' or ';' in /.../start.php on line 149

Ist da noch ein Schreibfehler?
 

hub

nicht ganz neu hier

"ergebnis" kannst du als (virtuelles) Feld der Tabelle zu behandeln, also nach deiner Schreibweise
$daten['ergebnis'].
Es sind also 2 Sachen falsch.
<td>'$ergebnis'</td>
sollte so aussehen
<td>' . $daten['ergebnis'] . '</td>
Punkte nicht vergessen :)
 

strichcode

Nicht mehr ganz neu hier

Ihr seid so großartig! Und besonderen Dank an hub.
Da wäre ich nie drauf gekommen.

Ich hab immer rumgedocktert, weil ich das Wort "ergebnis" mir irgendwie "schon vergeben" vorgestellt habe. Ich dachte $ergebnis ist der Inhalt von $abfrage und kann nicht auch noch gleichzeitig Summe aus KAPAZITAET + ZUS_BETTEN_1 sein.
Deshalb hatte ich wohl so ein Brett vor dem Kopf.

$abfrage = "SELECT *, KAPAZITAET + ZUS_BETTEN_1 AS ergebnis FROM tabellenname WHERE irgendwas LIKE '00'";
und
$ergebnis = mysql_query($abfrage);
while ($daten = mysql_fetch_array( $ergebnis, MYSQL_ASSOC)) {
echo '<td>' . $daten['ergebnis'] . '</td>
.....
So funktioniert es. Danke.
 

hub

nicht ganz neu hier

Du kannst ja statt ergebnis einen anderen, eindeutigeren Namen verwenden ... es ist ja nur ein Beispiel für das Prinzip :)
Auf der Seite von mysql findest du gut sortierte Informationen und Beispiele, die dir das Leben leichter machen. Wenn du mehr vor hast, lohnt es sich auf alle Fälle dort vorbei zu schauen.
 

afr0kalypse

Allwissendes Karmameerschweinchen!

Kleiner Tipp für die Zukunft. Überlege dir eine einheitliche Namenskonvention für deine Programmiersprache(n). Dann kommst du nicht so schnell durcheinander :)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben