Rechnen mit Php

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

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

    Comment


    • #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

      Comment


      • #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]

        Comment


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

          Comment


          • #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

            Comment


            • #7
              klappt leider nicht bekomme als ergebnis immer 0

              Comment


              • #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 |


                Comment


                • #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???

                  Comment


                  • #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.
                    Last edited by Wurzel; 16-06-2003, 17:28.
                    Kissolino.com

                    Comment


                    • #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 |


                      Comment


                      • #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 |


                        Comment


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

                          aber normal sollte 13000 raus kommen

                          da

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

                          Comment


                          • #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

                            Comment


                            • #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

                              Comment

                              Working...
                              X