mysqldumper
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 26.04.2008, 16:24   #1
TP-Senior
 
Registriert seit: Dec 2002
Ort: Langenthal
Pixelmaster macht alles soweit korrekt

Addition dynamisch in PHP


Hallo,
wie krieg ich eine "dynamische" Addition mit PHP hin? Normalerweise hat man ja "feste" Werte zum Addieren wie $a + $b = $c.

Nun möchte ich aber z.B. die Gesamtpreise diverser Artikel in einen Gesamtbetrag zusammenfassen. Das Problem ist, dass die Gesamtpreise der einzelnen Artikel allesamt einzeln aufgeführt bzw. aufgelistet werden und zwar mit folgender Formatierung

Code:
printf($fmt6,$key,$key,$DS[1],$_SESSION[$DS[0]],$DS[2],number_format($gesamt,2,',',' '));
Die Einzeltotale der betreffenden Artikel sind in $gesamt aufgeführt. Also Artikel A = $gesamt, dann Artikel B = $gesamt usw.!

Nun listet es mir ja die verschiedenen $gesamt auf und die möchte ich nun in ein $gesamt2 zusammenfassen können. Nun hab ich keine konkrete Idee wie man dies umsetzen könnte.

Danke für jegliche Vorschläge!
Pixelmaster ist offline   Mit Zitat antworten


Alt 26.04.2008, 16:50   #2
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
$gesamt2 += $gesamt;
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 26.04.2008, 17:06   #3
TP-Senior
 
Registriert seit: Dec 2002
Ort: Langenthal
Pixelmaster macht alles soweit korrekt
Danke für den Tipp, aber das geht so nicht, da man dies so verstellen muss:

$gesamt2 = $gesamt + $gesamt + $gesamt usw.

2 Artikel A sind Euro 25 ($gesamt)
3 Artikel B sind Euro 40 ($gesamt)
usw.

Alle Artikel zusammen sind Euro 65 ($gesamt2)

Jedes $gesamt ist ein separater Artikel. Das obige Beispiel soll die Problematik anzeigen. Natürlich geht das so nicht, wenn alle mit $gesamt angezeigt wird, wie jetzt. Nun stellt sich die Frage, ob man da mit dem Key der Artikel arbeiten muss?
Pixelmaster ist offline   Mit Zitat antworten
Alt 26.04.2008, 22:04   #4
TP-Moderator
 
Benutzerbild von Cybergreek
 
Registriert seit: Nov 2005
Ort: Köln
Cybergreek hilft, wo's gehtCybergreek hilft, wo's gehtCybergreek hilft, wo's geht
steffenk meinte (höchstwahrscheinlich ), dass Du jedes Mal wenn Du $gesamt berechnest bzw. ausgibst, diese Zeile ausführst:

$gesamt2 += $gesamt;

So addierst Du in der Variablen $gesamt2 alle Gesamt-Werte hoch.
__________________
Grüße vom Griechen,
Cybergreek!

WikiDict.de - Das Wiki-Wörterbuch
Cybergreek ist offline   Mit Zitat antworten
Alt 26.04.2008, 22:50   #5
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Wenn Du einen Warenkorb in der Session ablegst, kannst Du auch etwas in dieser Art benutzen:

PHP-Code:
<?php

session_start
();

$artikel_A 'Hose';
$artikel_B 'Jacke';
$artikel_C 'Hemd';

// Artikel in den Warenkorb legen
$_SESSION['warenkorb'][$artikel_A] = 12;
$_SESSION['warenkorb'][$artikel_B] = 27.95;
$_SESSION['warenkorb'][$artikel_C] = 9.50;

// Werte im Array $_SESSION['warenkorb'] addieren
// Gibt "49.45" aus
echo array_sum$_SESSION['warenkorb'] );

?>
Das hat den Vorteil, dass Werte nicht vermischt werden und man so bequem einzelne Posten wieder aus dem Warenkorb entfernen kann, was sich direkt auf den Gesamtpreis auswirkt.
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
.
Rizzo ist offline   Mit Zitat antworten
Alt 28.04.2008, 20:15   #6
TP-Senior
 
Registriert seit: Dec 2002
Ort: Langenthal
Pixelmaster macht alles soweit korrekt
Hallo steffenk, Deine Version klappt gut, ausser nur, dass es mir nur die letzte aufgeführte Artikelzeile addiert bzw. aufführt, aber die restlichen anderen Artikelzeilen nicht hinzufügt. Ich habs folgendermassen mal eingebaut:

Codeschnipsel:

Code:
$ges +=$gesamt;

printf($fmt7,$ges);
Wie krieg ich das noch hin, dass es mir alle Gesamttotale dieser html-Tabelle zusammenzählt?

Wäre da so ein Konstrukt in Richtung wie folgt denkbar:

$ges = 0;
$ges += anzahl * einzelpreis;

Oder gibt's da noch eine bessere Lösung?
Pixelmaster ist offline   Mit Zitat antworten
Alt 28.04.2008, 20:43   #7
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
was soll ich sagen - die Schnipsel die Du zeigst lassen nicht darauf schliessen wie Du Deine Schleife gestaltet hast.

Ausserdem empfehle ich Dir aussagekräftige Variablennamen zu benutzen. Ich bekomme das Grausen bei Code, wo Vars wie $fmt, $v, $sK, $vlTp etc vorkommen.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 29.04.2008, 14:21   #8
TP-Senior
 
Registriert seit: Dec 2002
Ort: Langenthal
Pixelmaster macht alles soweit korrekt
Sorry steffenk, hier mal den ganzen Codeabschnitt:

Code:
<?php

$fp  = fopen("produkte.csv","r");
$sep = ";";

$fmt1 = "<tr align='left'><th>Artikelnummer</th><th>Bezeichnung</th><th>Anzahl</th><th>Einzelpreis</th><th>Gesamtpreis</th><th>&nbsp;</th><th>&nbsp;</th></tr>";	 

$fmt6 = "<form action='korb_1.php' method='get'><tr align='left'><td><input type='hidden' name='id' value='%s'>%s</td><td>%s</td><td><input type='text' name='anzahl' value='%s' size='4'></td><td style='text-align:left'>%s</td><td style='text-align:right'>%s</td><td><input type='submit' name='change' value='Anzahl &auml;ndern'></td><td><input type='submit' name='delete' value='l&ouml;schen'></td></tr></form>";

$fmt7 = "<tr align='left'><th>&nbsp;</th><th>&nbsp;</th><th>&nbsp;</th><th>Gesamtbetrag:</th><th style='text-align:right'>%s</th><th>&nbsp;</th><th>&nbsp;</th></tr>";	
 
$zeile = fgets($fp,100);


echo "<table id='katalog' border='0'>";

printf($fmt1); //Überschriften der Rubriken 

while($zeile = fgets($fp,1024)){
$DS = explode($sep,$zeile);
$key = substr($zeile,0,strpos($zeile,$sep));//Key holen

if(!isset($_SESSION[$DS[0]])) continue;

$gesamt = $_SESSION[$DS[0]] * str_replace(',','.',$DS[2]);//Anzahl mal Einzelpreis

printf($fmt6,$key,$key,$DS[1],$_SESSION[$DS[0]],$DS[2],number_format($gesamt,2,',',' '));

}

$ges = 0;
while($ges)
{
$ges = $_SESSION[$DS[0]] * str_replace(',','.',$DS[2]);
$ges +=$gesamt;
printf($fmt7,number_format($ges,2,',',' '));//Tabellenausgabe
}

echo "</table>";

fclose($fp);

?>
Alles läuft prima, ausser nun mit der while-Schleife, mit welcher ich dann versuchen möchte alle Gesamtpreise in ein Gesamttotal zu addieren. Es betrifft nun einzig folgende while-Schleife:

Code:
$ges = 0;
while($ges)
{
$ges = $_SESSION[$DS[0]] * str_replace(',','.',$DS[2]);
$ges +=$gesamt;
printf($fmt7,number_format($ges,2,',',' '));//Tabellenausgabe
}
Da bin ich mir nicht sicher, wie ich nun den richtigen Ansatz anpacken muss.
Pixelmaster ist offline   Mit Zitat antworten
Alt 29.04.2008, 14:35   #9
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Du benutzt auch 2mal die selbe Variable
PHP-Code:
$ges 0;
while(
$ges) {
   
$gesamt $_SESSION[$DS[0]] * str_replace(',','.',$DS[2]);
   
$ges +=$gesamt;
   
printf($fmt7,number_format($gesamt,2,',',' '));//Tabellenausgabe
}
echo 
'Total: '.number_format($ges,2,',',' '); 
wobei das Zweifelhaft ist: while($ges) {..}
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 04.05.2008, 18:56   #10
TP-Senior
 
Registriert seit: Dec 2002
Ort: Langenthal
Pixelmaster macht alles soweit korrekt
ich hab nun versucht in der bestehenden Schleife das Gesamttotal aller $gesamt in $ges einzubauen. Wobei ich nun nicht sicher bin, ob man das so "einfach" lösen kann. Hier mal das neue Codeschnipsel:

Code:
echo "<table id='katalog' border='0'>";

printf($fmt1); //Überschriften der Rubriken 

while($zeile = fgets($fp,1024)){
$DS = explode($sep,$zeile);
$key = substr($zeile,0,strpos($zeile,$sep));//Key holen

if(!isset($_SESSION[$DS[0]])) continue;

$gesamt = $_SESSION[$DS[0]] * str_replace(',','.',$DS[2]);//Anzahl mal Einzelpreis

printf($fmt6,$key,$key,$DS[1],$_SESSION[$DS[0]],$DS[2],number_format($gesamt,2,',',' '));

$ges = 0;

$ges +=$gesamt;

}

printf($fmt7,number_format($ges,2,',',' '));//Tabellenausgabe

echo "</table>";
Ich möchte die Variable $ges, welche ich mit 0 definiert habe, mit sämtlichen $gesamt auffüllen bzw. aufaddieren, die weiter oben im Code generiert werden. Der ganze Code läuft prima, ausser nun dieser Teil

$ges = 0;

$ges +=$gesamt;

oder müsste man da mit einer zusätzlichen Schleife arbeiten? Mit einer for-Schleife hab ich es auch schon probiert, ging aber nicht oder ich hab was verbockt.
Pixelmaster ist offline   Mit Zitat antworten
Alt 04.05.2008, 19:26   #11
TP-Moderator
 
Benutzerbild von Cybergreek
 
Registriert seit: Nov 2005
Ort: Köln
Cybergreek hilft, wo's gehtCybergreek hilft, wo's gehtCybergreek hilft, wo's geht
Durch $ges = 0; setzt Du die Variable in jedem Schleifendurchlauf wieder auf 0 zurück. Dieser Teil sollte also außerhalb der Schleife stattfinden, wenn ich Dich richtig verstanden habe
__________________
Grüße vom Griechen,
Cybergreek!

WikiDict.de - Das Wiki-Wörterbuch
Cybergreek ist offline   Mit Zitat antworten
Alt 04.05.2008, 20:13   #12
TP-Senior
 
Registriert seit: Dec 2002
Ort: Langenthal
Pixelmaster macht alles soweit korrekt
Das $ges sollte bei jedem Durchlauf alle $gesamt addieren und schliesslich ausgeben. Das wäre bzw. sollte der Sinn meines Vorhabens sein bzw. das $ges passt sich jedem Durchlauf an und zeigt jeweils das Total aller $gesamt an.
Pixelmaster ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Addition dynamisch in PHP Addition dynamisch in PHP
« Rekursive Funktion gibt Array nicht zurück | Versandkosten berechnen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:21 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67