tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
736
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von mrepox
    mrepox mrepox ist offline Mitglied Gold
    Registriert seit
    Jun 2004
    Ort
    Paderborn
    Beiträge
    248
    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?

    Markus
    Geändert von mrepox (03.09.06 um 00:00 Uhr)
     

  2. #2
    Avatar von cameeel
    cameeel cameeel ist offline Mitglied Platin
    Registriert seit
    Dec 2004
    Beiträge
    677
    Zitat Zitat von mrepox
    Mein Latein ist nun leider zu ende.
    Offtopic: Latein im Computerraum? Wie geht denn das?

    cAm3eel.
     
    Nein, ich bin nicht die Signatur, ich putz hier nur.

    URL's kürzen | Code's speichern

  3. #3
    Avatar von mrepox
    mrepox mrepox ist offline Mitglied Gold
    Registriert seit
    Jun 2004
    Ort
    Paderborn
    Beiträge
    248
    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 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)
     

  4. #4
    ezias ezias ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Ort
    München
    Beiträge
    147
    Mach das doch so:
    PHP-Code:
    <?php
    /*
    ...
    */
    while($aus $result->fetch_assoc()) 
        { 
        
    $aus_array[] = $aus['gesamtpreis']; 
          
         
        } 
        echo 
    "Summe = " array_sum($aus_array) . "\n"
     }
    ?>
    So müsstest du ein
    indiziertes Array erhalten und dann sollte array_sum () funktionieren.

    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).
     

  5. #5
    Avatar von mrepox
    mrepox mrepox ist offline Mitglied Gold
    Registriert seit
    Jun 2004
    Ort
    Paderborn
    Beiträge
    248
    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
     

  6. #6
    ezias ezias ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Ort
    München
    Beiträge
    147
    was näher erklären das mit der PHP Version vor 4.2.1 oder warum $aus_array[] = $aus['gesamtpreis']; ?
     

  7. #7
    Avatar von mrepox
    mrepox mrepox ist offline Mitglied Gold
    Registriert seit
    Jun 2004
    Ort
    Paderborn
    Beiträge
    248
    gerne das letztere. habe echt 1,5 stunden rumgebastelt und bin da nicht drauf gekommen....


    hier läuft übrigends PHP Version 5.1.5
    Geändert von mrepox (02.09.06 um 23:59 Uhr)
     

  8. #8
    Avatar von cameeel
    cameeel cameeel ist offline Mitglied Platin
    Registriert seit
    Dec 2004
    Beiträge
    677
    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.
     
    Nein, ich bin nicht die Signatur, ich putz hier nur.

    URL's kürzen | Code's speichern

  9. #9
    Avatar von mrepox
    mrepox mrepox ist offline Mitglied Gold
    Registriert seit
    Jun 2004
    Ort
    Paderborn
    Beiträge
    248
    @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.
     

  10. #10
    ezias ezias ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Ort
    München
    Beiträge
    147
    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.

    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";
    ?>
    Damit kannst du dir ja mal die 2 Arrays vergleichen dann verstehst du vieleicht warum es nicht funktioniert hat.
     

Ähnliche Themen

  1. PHP -> Arrays addieren
    Von fixxxxxi im Forum PHP
    Antworten: 13
    Letzter Beitrag: 04.12.10, 12:38
  2. Addieren von 2 Arrays
    Von Sasser im Forum PHP
    Antworten: 1
    Letzter Beitrag: 06.09.10, 02:09
  3. 2 Arrays addieren
    Von dibe0014 im Forum PHP
    Antworten: 1
    Letzter Beitrag: 29.03.06, 16:59
  4. Antworten: 4
    Letzter Beitrag: 11.06.04, 18:24
  5. unbestimmte Anzahl an Formularelementen addieren
    Von pxlArtizzt im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 03.09.03, 11:27