ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
736
736
EMPFEHLEN
-
Hallo Leutz,
ich habe mal wieder ein Problem.
Diesesmal gehts um ein PHP Warenwirtschaft Programm.
Beim erstellen einer Rechnung werden Menge, Artikel, Einzelpreis eingegeben.
Der Gesamtpreis einer Position errechnet sich logischer aus der Menge und dem Einzelpreis und
wird beim schreiben in die DB (mysql) mit übermittelt.
Mein eigentliches Problem liegt im addieren der Gesamtpreise aller Positionen was dann die Rechnungssumme ergiebt.
Die Anzahl der Positionen(Arrays) ist unbestimmt, bzw. jedesmal anders.
Die Idee lag darin die Positionen aus der DB mit einer while Schleife auszulesen und als Arrays zu speichern.
Diese sollen dann addiert werden und als Rechnungsgesamtsumme in die DB geschrieben werden.
PHP-Code:function select_positionen($kundennummer)
{
$conn = db_connect();
$query = "select gesamtpreis FROM faktura WHERE knnr = '$kundennummer'";
$result = $conn->query($query);
while($posgesamt = $result->fetch_assoc()) // bzw. array
{
$posgesamt = //wäre toll wenn jemand hier eine Idee hätte
}
}
Wer kann mir hier helfen? Mein Latein ist nun leider zu ende. Wäre array_sum() eine Lösung?
MarkusGeändert von mrepox (03.09.06 um 00:00 Uhr)
-
Offtopic: Latein im Computerraum? Wie geht denn das?
Zitat von mrepox

cAm3eel.
-
Habe jetzt mal einen Versuch gestartet, allerdins mit Ergebnis Summe=0
Bin wahrscheinlich auf dem sogenannten "Holzweg", wäre prima wenn ihr mir dabei helfen würdet.
PHP-Code:function select_artikel($bbb)
{
$conn = db_connect();
$query = "select gesamtpreis FROM faktura WHERE knnr = '$bbb'";
$result = $conn->query($query);
$aus_array = array();
while($aus = $result->fetch_assoc())
{
$aus_array[] = $aus;
}
echo "Summe = " . array_sum($aus_array) . "\n";
}
var_dump($aus_array) gibt folgendes aus:
PHP-Code:Summe = 0 array(2) { [0]=> array(1) { ["gesamtpreis"]=> string(3) "144" } [1]=> array(1) { ["gesamtpreis"]=> string(2) "22" } }
Geändert von mrepox (02.09.06 um 22:13 Uhr)
-
Mach das doch so:
So müsstest du ein indiziertes Array erhalten und dann sollte array_sum () funktionieren.PHP-Code:<?php
/*
...
*/
while($aus = $result->fetch_assoc())
{
$aus_array[] = $aus['gesamtpreis'];
}
echo "Summe = " . array_sum($aus_array) . "\n";
}
?>
Achja auf http://de.php.net/manual/de/function.array-sum.php steht:
Anmerkung: PHP Versionen vor 4.2.1 haben das übergebene Array selbst modifiziert, und Strings in Zahlen konvertiert (welche abhängig von deren Wert meist zu null konvertiert wurden).
-
Super gut, das klappt!
Damit hast du mir sehr geholfen. Kannst du mir das denn nochmal näher erklären?
Ich habe das auf php.net auch gelesen nur konnte ich mir keinen näheren reim draus machen.
Gruß und danke
-
was näher erklären das mit der PHP Version vor 4.2.1 oder warum $aus_array[] = $aus['gesamtpreis']; ?
-
gerne das letztere. habe echt 1,5 stunden rumgebastelt und bin da nicht drauf gekommen....

hier läuft übrigends PHP Version 5.1.5Geändert von mrepox (02.09.06 um 23:59 Uhr)
-
Naja er hat einfach bei jedem Durchlauf der Schleife das Ergebnis dem Array $aus_array hinzugefügt und mit der Funktion array_sum() werden alle Elemente im Array ($aus_array) zusammengezählt.
cAm3eel.
-
@cAm3eel
toll, das ist mir bewußt, habe die funktion ja selber geschrieben. nur habe ich kein indiziertes array benutzt und das hätte ich gerne erklärt bekommen.
-
Im Prinzip hast du es dir mit var_dump schon selber erklärt. Dein Array $aus_array war ein verschachteltes Array da du in der while Schleife $aus Reingeschrieben hast und $aus durch mysql_fetch_assoc selber zum array wurde. Somit hat das nicht funktioniert.
Durch $aus_array = $aus['gesamtpreis'] hab ich wirklich nur die Zahlenwerte in das Array $aus_array geschrieben.
Du kannst ja mal noch ein array Anlagen z.B. $aus_array2 und dort nochmal in der while schleife $aus_array2 = $aus; zu dem bestehenden <font color="#000000">$aus_array = $aus['gesamtpreis']; hinzufügen und dir das ganze dann nach der while Schleife ausgeben lassen.
Damit kannst du dir ja mal die 2 Arrays vergleichen dann verstehst du vieleicht warum es nicht funktioniert hat.PHP-Code:<?php
/*
...
*/
$aus_array = array ();
$aus_array2 = array ();
while ($aus = $result->fetch_assoc())
{
$aus_array[] = $aus['gesamtpreis'];
$aus_array2[] = $aus;
}
echo "<pre>\n";
print_r ($aus_array);
echo "</pre>\n";
echo "<pre>\n";
print_r ($aus_array2);
echo "</pre>\n";
?>
Ähnliche Themen
-
PHP -> Arrays addieren
Von fixxxxxi im Forum PHPAntworten: 13Letzter Beitrag: 04.12.10, 12:38 -
Addieren von 2 Arrays
Von Sasser im Forum PHPAntworten: 1Letzter Beitrag: 06.09.10, 02:09 -
2 Arrays addieren
Von dibe0014 im Forum PHPAntworten: 1Letzter Beitrag: 29.03.06, 16:59 -
Unbestimmte Anzahl von Woertern in Feld -> Wie einzeln abspeichern?
Von einszwo im Forum C/C++Antworten: 4Letzter Beitrag: 11.06.04, 18:24 -
unbestimmte Anzahl an Formularelementen addieren
Von pxlArtizzt im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 03.09.03, 11:27





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren