# Mysql Rechnen



## Matthiasghh (20. August 2005)

Hallo brauche dringend Hilfe!

Ich möchte gerne aus einer Mysql DB den inhalt einer spalte mit Plus rechnen


```
$ds_anzahl = "4";
$abfrage = "SELECT * FROM abgabe";
$result = mysql_query("select * from abgabe order by id LIMIT {$HTTP_GET_VARS['start']}, $ds_anzahl");
while ($row = mysql_fetch_object($result))
{
$preis     = $row->preis;
```
ausgabe plus muss jetzt mit den werten addiert werden.

z.B:

id1 = preis =  100
id2 = preis = 100

betrag = 200

wer kann mir helfen ?


----------



## Jörg Rißmann (20. August 2005)

Leider hast du dich ein Bißchen verwirrend ausgedrückt.
Wenn du meinst, du suchst n-betroffene Tupel aus der DB und möchtest die Summe einer Spalte, dann geht das so:

```
SELECT SUM(spaltenname) AS ergebnis FROM tabelle WHERE bedingunen=zutreffend;
```


----------



## Matthiasghh (20. August 2005)

Hallo und Danke,

nein ich gebe z.B mit einen Formular eine Zahl ein z.b 100
dann gebe ich als nächsten eintrag 200 ein wie kann ich jetzt in der Ausgabe die Zahlen zusammmen rechnen ?


----------



## Gumbo (20. August 2005)

Probier mal folgende Abfrage:
	
	
	



```
SELECT
        `id1` + `id2` AS `betrag`
  FROM
        `abgabe`
```


----------



## Matthiasghh (20. August 2005)

funktioniert leider nicht kann man nicht die Ausgabe zussamen rechnen?
zb so?

```
while ($row = mysql_fetch_object($result))
{
$preis  = $row->preis;
$betrag = $preis+$preis
echo "$betrag";
}
```


----------



## Gumbo (20. August 2005)

Ich hoffe, du hast „id1“ und „id2“ durch die Bezeichner der entsprechenden Spalten ersetzt.


----------



## Matthiasghh (20. August 2005)

Ich habe eine Spalte die Preis heißt die ID wird bei jeden eintrag hochgezählt.


----------



## Gumbo (20. August 2005)

Dann solltest du möglicherweise noch einmal ganz genau erklären, was du erreichen möchtest und welche Informationen und Mittel dir dazu zur Verfügung stehen.


----------



## Kensor (21. August 2005)

Ich habe ein ähnliches Problem:


```
<?
session_register("kopf", "head_id") ;
session_start() ;

include ("db_open.php") ;

mysql_select_db("kasse") or die ("Datenbank konnte nicht ausgewählt werden");

if ($reset) {
	$name = "" ;
	$adresse = "";
	$kopf = "" ;
	$head_id = "" ;
}

if ($del_1) {
	$sql = "delete from head where id = $del_1";
	mysql_query($sql);
}

if (($name) and (!$kopf)) {
	$eintrag = "INSERT INTO head (name, adresse, ort, datum, total, mwst) values ('$name', '$adresse', '$ort', '$datum', '$total', '$mwst')";
	$eintragen = mysql_query($eintrag);
	$head_id = mysql_insert_id() ;
	$kopf = "OK" ;
}

if ($del_2) {
	$sql = "delete from pos where id = $del_2";
	mysql_query($sql);
}

if ($bezeichnung) {
	$betrag = $preis * $menge ;
	$eintrag = "INSERT INTO pos (head_id, menge, bezeichnung, preis, betrag) values ('$head_id', '$menge', '$bezeichnung', '$preis', '$betrag')";
	$eintragen = mysql_query($eintrag);
}

if ($id_1) {
	$head_id = $id_1 ;
	$result = mysql_query("select * from head where id=$head_id") or die ("DB - Lesefehler (ID, HEAD_ID)");
	$row = mysql_fetch_array ($result) ;



	include ("kopf_read.php") ;

	$kopf = "OK" ;
}
?>

<html>

<head>
<meta http-equiv="Content-Language" content="de-ch">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Kasse <? echo $kopf ?></title>
</head>

<body bgcolor="#008080">
<link rel="stylesheet" href="style.css" type="text/css">

<img src="img/csi_klein.jpg" alt="" border="0">
<form action="index.php" method="post">
<TABLE>
<tr>
	<td>Name:</td>
	<td><input type="text" style="font-family: Tahoma; font-size: 12px; border-style: solid; border-width: 1px" size="20" maxlength="50" name="name" value="<? echo $name ?>"></td>
	<td>Nummer:</td>
	<td><? echo $head_id ?></td>
</tr>
<tr>
	<td>Adresse:</td>
	<td><input type="text" style="font-family: Tahoma; font-size: 12px; border-style: solid; border-width: 1px" size="20" maxlength="50" name="adresse" value="<? echo $adresse ?>"></td>
	<td>Datum:</td>
	<td><input type="text" style="font-family: Tahoma; font-size: 12px; border-style: solid; border-width: 1px" size="20" maxlength="50" name="datum" value="<? echo $datum ?>"></td>
</tr>
<tr>
	<td>Ort:</td>
	<td><input type="text" style="font-family: Tahoma; font-size: 12px; border-style: solid; border-width: 1px" size="20" maxlength="50" name="ort" value="<? echo $ort ?>"></td>
	<td>Total:</td>
	<td><input type="text" style="font-family: Tahoma; font-size: 12px; border-style: solid; border-width: 1px" size="20" maxlength="50" name="total" value="<? echo $total ?>"></td>
</tr>
<tr>
	<td colspan="4" bgcolor="#ffffff" width="100%"></td>
</tr>
</TABLE>
<TABLE>
<tr>
	<td>Artikel:&nbsp;	</td>
	<td><textarea style="font-family: Tahoma; font-size: 12px; border-style: solid; border-width: 1px" cols="60" rows="2" name="bezeichnung"></textarea></td>
	<td></td>
	<td></td>
</tr>
<tr>
	<td>Preis:&nbsp;	</td>
	<td><input type="Text" style="font-family: Tahoma; font-size: 12px; border-style: solid; border-width: 1px" size="6" maxlength="7" name="preis"></td>
	<td></td>
	<td></td>
</tr>
<tr>
	<td>Anzahl:&nbsp;	</td>
	<td><input type="Text" style="font-family: Tahoma; font-size: 12px; border-style: solid; border-width: 1px" size="6" maxlength="2" name="menge"></td>
	<td></td>
	<td></td>
</tr>
<tr>
	<td align="center" colspan="6"><input type="submit" style="font-family: Tahoma; font-size: 12px; border-style: solid; border-width: 1px" value="OK">&nbsp;
	<a href="index.php?reset=1">Reset</a>&nbsp;
	<a target="_blank" href="beleg.php?id=<? echo $id ?>">Beleg</a></td>
</tr>
</table>

<table>
	<tr>
		<td width="20"></td>
		<td width="150"></td>
		<td width="100"></td>
		<td width="100"></td>
		<td width="100"></td>
		<td width="20"></td>
		<td width="20"></td>
	</tr>
	<tr><td colspan="7" height="1" width="100%" bgcolor="#ffffff"></td></tr>
<?
if ($kopf) {
	$result = mysql_query("select * from pos where head_id=$head_id") or die ("DB - Lesefehler (POS)");
	while ($row = mysql_fetch_array ($result)) {
		$id = $row['id'] ;
		$menge = $row['menge'] ;
		$bezeichnung = $row['bezeichnung'] ;
		$preis = $row['preis'] ;
		$betrag = $row['betrag'] ;
		$mwst = $row['mwst'] ;
		?>
		<tr>
			<td align="left"><? echo $bezeichnung ?></td>
			<td align="right"><? echo $preis ?></td>
			<td align="right"><? echo $menge ?></td>
			<td align="right"><? echo $betrag ?></td>
			<td align="right"><? echo $total ?></td>
			<td align="right"><? echo $mwst ?></td>
			<td bgcolor="#ff0000" align="center"><a href="index.php?del_2=<? echo $id ?>"><font color="#FFFFFF">Del</font></a></td>
		</tr>
		<tr><td colspan="6" height="1" width="100%" bgcolor="#ffffff"></td></tr>
	<?
	}

} else {

	$result = mysql_query("select * from head") or die ("DB - Lesefehler (HEAD)");
	while ($row = mysql_fetch_array ($result)) {
		include ("kopf_read.php") ;
		?>
		<tr>
			<a href="index.php?id_1=<? echo $id ?>">
			<td align="center"><? echo $id ?></td>
			<td><? echo $name ?></td>
			<td><? echo $adresse ?></td>
			<td><? echo $ort ?></td>
			<td><? echo $datum ?></td>
			<td align="right"><? echo $total ?></td>
			</a>
			<td bgcolor="#ff0000" align="center"><a href="index.php?del_1=<? echo $id ?>"><font color="#FFFFFF">Del</font></a></td>
		</tr>
		<tr><td colspan="7" height="1" width="100%" bgcolor="#ffffff"></td></tr>
	<?
	}
}
?>
</TABLE>
</form>

</body>

</html>
```

Bei $total sollte das ergebnis aller Artikel eingefügt werden, ich finde aber nirgends nen hinweis der mir aufzeigt was ich jetzt genau einfügen muss.

Kann mir da bitte jemand helfen?


----------



## Gumbo (21. August 2005)

> Bei $total sollte das ergebnis aller Artikel eingefügt werden […]


Wenn du mit dem Ergebnis die Summe aller „total“-Werte meinst, könntest du mit der SUM()-Funktion arbeiten.


----------



## Kensor (21. August 2005)

Ich hab hier mal nen Screen gemacht um zu verdeutlichen was ich meine:

Bild 

Das Problem ist, dass bei jedem "kunden" nur seine Einkäufe zusammengerechnet und ausgegeben werden sollen.
Ich möchte aber nicht für jeden Kunden ne eigene Tabelle in der DB.

Ich habe 2 Tabellen: eine mit head (da wird der teil über dem strich eingetragen)
und eine mit pos (da werden einfach nur die artikel (positionen) eingetragen)
die beiden sind mit der ID bzw. mit der HEAD_ID verknüpft.

Mit dem SUM Befehl hats leider nicht geklappt, da hat er mir nichts ausgegeben (vielleicht hab ichs auch falsch gemacht   )


----------



## Jörg Rißmann (21. August 2005)

Du musst sie in einem Query auslesen (leider steht nicht da, wie du es jetzt machst).
Dann kannst du die Summe von den abgefragten Spalten der Tabelle A als Spalte anzeigen lassen.

```
SELECT *,SUM((anzahl.atrikel*artikelpreis.artikel)) FROM artikel, kunde WHERE id.kunde = kunden_id.artikel
```


----------



## Kensor (21. August 2005)

Das is mir wohl etwas zu hoch 

Ich habs mal mit folgendem Befehl versucht:


```
SELECT SUM(betrag) FROM pos WHERE ID=HEAD_ID
```

jedoch gibt er mir dann immer SUM(betrag) NULL aus.


----------

