Rechnen mit Php

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Rechnen mit Php

    Hallo!

    Habe folgendes problem (code siehe unten), ich frage ie db ab das auch klappt und dann errechne ich mir ein zeilenergbnis dies klappt auch noch es können mehrere zeilen sein und die anzahl der zeilen kann pro abfrage immer unterschiedlich sein. Nun möchte ich die Zeilensumme jeder zeile zu einer gesamtsumme addieren nur leider bekomme ich dies nicht wirklich hin.

    PHP-Code:
        <?
                        $query_anfrage_position="select * from anfrage_position where anf_nr=".$anf_nr;
                        $erg_anfrage_position=mysql_query($query_anfrage_position) or die(mysql_error());
                        
                        $summe_zeilen=0;
                        
                        while ($row_anf_pos=mysql_fetch_array($erg_anfrage_position))                                        
                        {    
                        $rabatt=$row_anf_pos[art_rabatt]/100;
                        $vk_preis=$row_anf_pos[vk_preis];
                    
                        $redpreis=$vk_preis*(1-$rabatt);
                        $zeilensumme=$row_anf_pos[menge]*$redpreis;
                        
                        $summe_zeilen++;
                        ?>    
                    <tr>
                        <td valign="top" width="16"><a href="content.php?site=artikel/artikel&vnavi=v_artikel&art_id=<?echo ''.$row_anf_pos[art_id].''; ?>"><img src="images/button/detail_person.gif" alt="zum Artikelstamm" height="16" width="16" border="0"></a></td>
                        <td valign="top" width="68"><input type="text" name="art_nr" value="<?echo ''.$row_anf_pos[art_id].''; ?>" size="9" border="0"></td>
                        <td valign="top" width="254"><textarea name="" rows="2" cols="38" readonly></textarea></td>
                        <td valign="top" width="132"><input type="text" name="einheit" value="" readonly size="20" border="0"></td>
                        <td valign="top" width="80"><input type="text" name="menge" value="<?echo ''.$row_anf_pos[menge].''; ?>" size="11" border="0"></td>
                        <td valign="top" width="80"><input type="text" name="vk_preis" value="<?echo ''.$row_anf_pos[vk_preis].''; ?>" size="11" border="0"></td>
                        <td valign="top" width="48"><input type="text" name="art_rabatt" value="<?echo ''.$row_anf_pos[art_rabatt].''; ?>" size="6" border="0"></td>
                        <td valign="top" width="80"><input type="text" name="redpreis" value="<? echo $redpreis; ?>" size="11" border="0"></td>
                        <td valign="top" width="80"><input type="text" name="zeilensumme[<? echo $summe_zeilen; ?>]"  value="<? echo $zeilensumme; ?>"  size="11" border="0"></td>
                    </tr>
    <? } ?>
    und hier sollte die gesamtsumme gebildet werden.

    PHP-Code:
    <? for($n=0; $n<$summe_zeilen; $n++)
    {
    echo 'zeilensumme['.$n.']';

    ?>
    danke schon mal

  • #2
    also ich seh da jetzt ehrlich gesagt nur eine abfrage. und wenn du die anzahl der zeilen (sprich datensätze haben willst) nimm halt num_rows().

    Kommentar


    • #3
      hi!

      nein ich brauch nicht die summe der datensätze sondern
      ich möchte die summe

      <input type="text" name="zeilensumme[<? echo $summe_zeilen; ?>]" value="<? echo $zeilensumme; ?>" size="11" border="0">

      haben. Da je nach abfrage sich die anzahl der passenden zeilen verändern kann .dh. wenn z.b. Artikel 1 + Artikel 2 zur abfrage passen werden diese ausgeworfen funktioniert auch nun wird noch ein bischen herum gerrechnet und dann gibts eine zeilensumme und da je nach abfrage sich diese mehr oder weniger viele sein können habe ich $summe_zeilen eingebaut damit ich dann mit einer schleife die gesamtsumme aus den zeilensummen errechnen kann nur da häng ich ein wenig

      Kommentar


      • #4
        das ganze soll in etwas dann so aussehen

        zeilensumme[1]=220
        zeilensumme[2]=400
        zeilensumme[3]=500

        ->> summe= zeilensumme[1]+zeilensumme[2]+zeilensumme[3]

        Kommentar


        • #5
          @TobiaZ weisst du jetzt was ich meine?

          Kommentar


          • #6
            änder mal nen paar zeilen:

            PHP-Code:
            // in der while-schleife
            $zeilensumme[]=$row_anf_pos[menge]*$redpreis;


            $gesamt 0;
            for(
            $n=0$n<$summe_zeilen$n++)
            {
            print 
            $zeilensumme[$n]."<br>";
            $gesamt $gesamt $zeilensumme[$n];

            print 
            $gesamt
            Kissolino.com

            Kommentar


            • #7
              klappt leider nicht bekomme als ergebnis immer 0

              Kommentar


              • #8
                habe jetzt nicht alles gelesen. aber änder mal den code von wurzel so ab.

                PHP-Code:
                // in der while-schleife
                $zeilensumme[]=$row_anf_pos[menge]*$redpreis;

                $gesamt 0;
                for(
                $n=0$n<$count($zeilensumme); $n++)
                {
                echo 
                $zeilensumme[$n]."<br>";
                $gesamt+= $zeilensumme[$n];

                echo 
                $gesamt
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  @Abraxax

                  bekome folgende fehlermeldung:

                  Warning: Cannot use a scalar value as an array in

                  &

                  Fatal error: Call to undefined function: ()

                  aber das ganze sollte ja erst nach der while schleife gemacht werden meiner meinung dann habe ich für jede zeilensumme ein value und
                  diese muss ich nur addieren und dies klappt leider nicht, da ich ja in vorhinein nicht sagen kann wieviel zeilensummen es sind brauche ich
                  die schleife aber erst nach der abfrage, oder???

                  Kommentar


                  • #10
                    $count($zeilensumme) nix gut
                    aber
                    count($zeilensumme) ist gut

                    OffTopic:
                    @abraxax
                    nicht meinen code kaputtmachen


                    @churcher
                    setz mal in deinen berechnungen (in der while schleife) bei allen
                    multiplikationen ein echo davor. nicht dass du dort schon deine werte
                    auf "0" setzt.
                    Zuletzt geändert von Wurzel; 16.06.2003, 18:28.
                    Kissolino.com

                    Kommentar


                    • #11
                      also schein $zeilensumme schon keine sauberen daten zu haben.

                      füge mal bitte vor der zeile $gesamt = 0; dies ein.

                      PHP-Code:
                      echo '<pre>';
                      print_r($zeilensumme);
                      echo 
                      '</pre>'
                      ausgabe?
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        Original geschrieben von Wurzel
                        $count($zeilensumme) nix gut
                        ups..... *pfeif*
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          ausgabe ist 5000 das ist die summe der zeilensumme 2

                          aber normal sollte 13000 raus kommen

                          da

                          zeilensumme[1]=8000
                          zeilensumme[2]=5000

                          Kommentar


                          • #14
                            Original geschrieben von churcher

                            zeilensumme[1]=8000
                            zeilensumme[2]=5000
                            das sollte ja nur der array-inhalt sein, addiert werden die erst in der
                            for-schleife und die summe sollte in $gesamt stehen.
                            Kissolino.com

                            Kommentar


                            • #15
                              so hab nochmals verständlicherweise den code so gekürzt das nur mehr dieser da ist den ich für $gesamt benötige:

                              PHP-Code:
                              <?
                              $query_anfrage_position="select * from anfrage_position where anf_nr=".$anf_nr;
                              $erg_anfrage_position=mysql_query($query_anfrage_position) or die(mysql_error());
                                                  
                              $summe_zeilen=0;
                                                  
                              while ($row_anf_pos=mysql_fetch_array($erg_anfrage_position))                                        
                              {    
                              $rabatt=$row_anf_pos[art_rabatt]/100;
                              $vk_preis=$row_anf_pos[vk_preis];
                                              
                              $redpreis=$vk_preis*(1-$rabatt);
                              $zeilensumme=$row_anf_pos[menge]*$redpreis;
                                                  
                              $summe_zeilen++;
                                                  
                              ?>    
                              <tr>                    
                              <td valign="top" width="80"><input type="text" name="zeilensumme[<? echo $summe_zeilen; ?>]"  value="<? echo $zeilensumme; ?>"  size="11" border="0"></td>
                              </tr>
                              <? } ?>

                              <td width="72"><input type="text" name="netto" value="<? echo $gesamt; ?>" size="10" border="0"></td>
                              in html sieht der code dann etwas so aus

                              <td valign="top" width="80"><input type="text" name="zeilensumme[ 1]" value="8000" size="11" border="0"></td>
                              <td valign="top" width="80"><input type="text" name="zeilensumme[ 2]" value="5000" size="11" border="0"></td>

                              durch $summe_zeilen frage ich ab wieviel zeilensumme[$n] es gibt und jetzt brauch ich die for schleife die sollte aber erst nachher kommen und
                              einfach abfragen wieviel zeilensumme[$n] es gibt und die es gibt deren werte addieren und ausgeben.

                              Vielleicht reden wir aneinander vorbei darum habe ich es nochmal zusammen gefasst

                              Kommentar

                              Lädt...
                              X