Jump to content

Daten aus DB addieren und in DB speichern


Recommended Posts

Guten Morgen,


ich hoffe ich finde hier jemanden der mir helfen kann.

Kurz erklärt, ich habe ein Profil Formular welches Daten aus einer DB liest und anzeigt.

Ein User aknn seine Daten dann verändern und diese werden dann wieder in die DB geschrieben.

Soweit funktioniert das auch.


Ich habe aber noch 2 weitere Felder in der DB die auf dem Formular nicht angezeigt werden.

gesamt und durch

Diese sollen beim Abschicken der Formulars berechnet und in die DB geschrieben werden.


Auszug aus der php Datei:

  # statische felder speichern
	  db_query("UPDATE prefix_user
		  SET
         homepage = '".get_homepage(escape($_POST['homepage'], 'string'))."',
         wohnort = '".escape($_POST['wohnort'], 'string')."',
         icq = '".escape($_POST['icq'], 'string')."',
         msn = '".escape($_POST['msn'], 'string')."',
         yahoo = '".escape($_POST['yahoo'], 'string')."',
         ".$avatar_sql_update."
         aim = '".escape($_POST['aim'], 'string')."',
         staat = '".escape($_POST['staat'], 'string')."',
         geschlecht = '".escape($_POST['geschlecht'], 'string')."',
         status = '".escape($_POST['status'], 'string')."',
         opt_mail = '".escape($_POST['opt_mail'], 'string')."',
         opt_pm = '".escape($_POST['opt_pm'], 'string')."',
         opt_pm_popup = '".escape($_POST['opt_pm_popup'], 'string')."',
         gebdatum = '".get_datum(escape($_POST['gebdatum'], 'string'))."',
         sig = '".substr(escape($_POST['sig'], 'string'),0,$allgAr['forum_max_sig'])."',
	  gilde = '".escape($_POST['gilde'], 'string')."',
 		  lev = '".escape($_POST['lev'], 'string')."',
	  alf = '".escape($_POST['alf'], 'int')."',
	  fen = '".escape($_POST['fen'], 'int')."',
	  gla = '".escape($_POST['gla'], 'int')."',
	  hel = '".escape($_POST['hel'], 'int')."',
	  mid = '".escape($_POST['mid'], 'int')."',
	  nam = '".escape($_POST['nam'], 'int')."',
	  forn = '".escape($_POST['forn'], 'int')."',
	  wat = '".escape($_POST['wat'], 'int')."',
	  ruf = '".escape($_POST['ruf'], 'int')."',
	  tok = '".escape($_POST['tok'], 'int')."',
	  kar = '".escape($_POST['kar'], 'int')."',
	  abe = '".escape($_POST['abe'], 'int')."',
	  sos = '".escape($_POST['sos'], 'int')."',
	  vol = '".escape($_POST['vol'], 'int')."',
	  cad = '".escape($_POST['cad'], 'int')."',
	  ran = '".escape($_POST['ran'], 'int')."',
	  gle = '".escape($_POST['gle'], 'int')."',
	  pgi = '".escape($_POST['pgi'], 'int')."',
	  ctp = '".escape($_POST['ctp'], 'int')."'
			WHERE id = ".$_SESSION['authid']
     );

	$abfrage = 'SELECT gilde,lev,alf,fen,gla,hel,mid,nam,forn,wat,ruf,tok,kar,abe,sos,vol,cad,ran,
gle,pgi,ctp,gesamt,durch FROM `prefix_user` WHERE id = "'.$_SESSION['authid'].'"';

	$gesamt = 0;
	$gesamt = $row->alf + $row->fen + $row->gla + $row->hel + $row->mid + $row->nam + $row->forn + $row->wat +
$row->ruf + $row->tok + $row->kar + $row->abe + $row->sos + $row->vol + $row->cad + $row->ran + $row->gle +
$row->pgi + $row->ctp;
	$durch = ($gesamt/19);		  

	  db_query("UPDATE prefix_user
		SET
         gesamt = '$gesamt',
         durch = '$durch'			   
	  	WHERE id = ".$_SESSION['authid']
     );

 

Das Problem fängt unten ab Zeile 44 $abfrage = .... an


Ich hoffe das ihr mir dabei helfen könnt und bedanke mich schon mal im voraus.

Link to comment
Share on other sites

Hi Powie,


Also im Prinzip geht es nur um folgenden Bereich des Codes

        $abfrage = 'SELECT gilde,lev,alf,fen,gla,hel,mid,nam,forn,wat,ruf,tok,kar,abe,sos,vol,cad,ran,
gle,pgi,ctp,gesamt,durch FROM `prefix_user` WHERE id = "'.$_SESSION['authid'].'"';

       $gesamt = 0;
       $gesamt = $row->alf + $row->fen + $row->gla + $row->hel + $row->mid + $row->nam + $row->forn + $row->wat +
$row->ruf + $row->tok + $row->kar + $row->abe + $row->sos + $row->vol + $row->cad + $row->ran + $row->gle +
$row->pgi + $row->ctp;
       $durch = ($gesamt/19);          

         db_query("UPDATE prefix_user
           SET
         gesamt = '$gesamt',
         durch = '$durch'               
             WHERE id = ".$_SESSION['authid']
     );

Korrigiere mich wenn ich was falsches schreibe.


Ich sehe das so:


Ich frage die Daten aus der DB ab

$abfrage = ...


setze $gesamt auf 0


und will die Daten aus der Abfrage in $gesamt addieren

$durch = $gesamt duch eine Zahl (19) teilen


und dann beides in die DB schreiben.


Alle Werte sind in der DB auf INT gesetzt, ausser durch ist DOUBLE 4,2


Für eine andere Idee wie ich $gesamt Berechnen und speichern kann bin ich dankbar,

da das so wie ich es versucht habe scheinbar nicht geht.

Link to comment
Share on other sites

`Also, habe noch mal weiter getestet.


Habe die Zeile $gesamt = alf + fen + ... mal rausgenommen und

$gesamt = 25

gemacht


Es wird dann tatsächlich die 25 in der DB gespeichert und $durch auf 1,32.


Soweit scheint ja alles richtig zu sein !!!


Nur die Berechnung von $gesamt = ... ist wohl falsch


Wie kann ich diese Daten sonst addieren ?


Keine Idee wie ich die Daten addiert bekomme ?

Link to comment
Share on other sites

Wenn die Spalten in der DB als INT definiert sind dann hast du keine Kommastellen, nur Ganzzahlen. Du musst die Definition der Felder in Double ändern.


P.S. Du kannst genauso die Datenbank rechnen lassen!!!


Bsp: select ( feld1 * feld2 ) as ergebnis From .......

Link to comment
Share on other sites

Hi Powie,


Also in allen Feldern ausser im feld durch werden nur ganzzahlen eingetragen ...


nur durch ist mit Kommastellen und das Habe ich als DOUBLE 4,2


Kannst du mir das mit der Datenbank rechnen lassen genauer erklären ?

Vllt. sogar den ganzen Code dafür schreiben, also nur für die Berechnung $gesamt


Ich wäre Dir zuwas von Dankbar.

Link to comment
Share on other sites

vergiss doch einfach mal alles andere an Code und stell Dir folgendes vor :


ich möchte aus einer DB einige Zellen auslesen (oder auch direkt berechnen)


DB

user | spalte1 | spalte2 | spalte3 | ... | spalte20 | spalte21 |

Test | 10 | 20 | 30 | .... | $gesamt | $durch |


$gesamt = spalte1 + spalte2 + spalte3 ...

$durch = $gesamt / 19


wie berechne ich $gesamt, bzw. wie kann ich die Daten aus der DB holen und dann addieren ?

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...