Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Problem mit If-Anweisung und Berechnung

Einklappen

Neue Werbung 2019

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

  • #61
    Danke für Eure Hilfe

    Habe gedacht das Problem ist einfacher zu lösen weil es ja "lediglich" nur eine Funktion ist die sagt wenn a = 0, dann b = 2 ... das habe ich schon für x Formulare gemacht aber es ist mir unerklärlich warum es nicht funktioniert

    Danke für Eure Mühe ...

    Kommentar


    • #62
      Das Problem selber ist auch einfach zu lösen!
      Nur nicht, wenn Du uns aufgrund des geringen Grundlagenwissens nicht verstehst...
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #63
        Da stimme ich Euch auf jeden Fall zu

        Das Probblem ist nur das ich nicht alle Tage einen Shop um eine Funktion erweiter, der Bekannte diese Funktion aber unbedingt haben möchte und der Shop am besten schon vorgestern laufen soll.

        Ich nehme mir Eure Posts nochmal alle zur Hand und dann werde ich das schon hinbekommen. Es ist ja nicht so das ich nicht lernen will.

        Der Shop ist ein Freeware Shopsystem das sich leicht anpassen lässt, zumindest was das Einbinden in Templates betrifft und nicht so Funktionsüberladen ist. Der Shop hat ursprünglich keine Funktion zum Errechnen der Versandkosten, lediglich einen festen Wert den man eingeben kann.
        Da Problem ist aber das anhand der bestellten Artikelmenge nun darauf zugeschnittene Versandkosten berechnet werden sollen. Ein Artikel besteht aus einem Packet zu je ein Kilo Gewicht.
        Wenn also 1 Packet bestellt wird dann betragen die Versandkosten 6 EURO, bei 2 Packeten 8 EURO usw.

        Ein weiteres Problem ist das ein Supoport für diesen Shop nur bedingt vorhanden ist, sprich der Ersteller auf sein Forum verweist welches nur sehr einfach gehalten ist und kaum user hat, man zwar dort nach vorhandenen Threads suchen kann aber dieses Problem noch nicht behandel wurdet ... weil das keiner braucht. Anfang letzter Woche habe ich dort mein Problem beschrieben und um Hilfe gebeten (in der Hoffung vom Ersteler infos zu bekommen) aber bis jetzt hat noch KEINER den Thread überhaupt angesehen.

        Nun dachte ich das ich hier mal nachfrage um schnell eine Lösung zu finden, weil der Shop eigentlich schon lange online sein sollte

        Kommentar


        • #64
          Es ist ja nicht so das ich nicht lernen will.
          Das sei Dir auch hoch angerechnet!
          und immerhin fängst Du auch nicht gleich an zu motzen, wie andere Leute, die auf Ihre Grundlagendefizite hingewiesen werden.

          Das Probblem ist nur das ich nicht alle Tage einen Shop um eine Funktion erweiter, der Bekannte diese Funktion aber unbedingt haben möchte und der Shop am besten schon vorgestern laufen soll.
          Genau dazu sind aber leider bestimmte Grundlagen Vorraussetzung, die wir Dir hier in einem Thread nicht beibringen könne, selbst wenn wir wollten.
          Aber Du kriegst das schon hin, wenn Du die Posts unter Mithilfe der Doku nochmal Schritt für Schritt versuchst nachzuvollziehen!
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar


          • #65
            Jetzt hab ich es hinbekommen

            Die Funktion an der richtige Stelle und es klappt. Ich habe viel zu komliziert gedacht und war der Meinung die Werte für $menge einfach am anfang des Dokumentes abreifen zu können

            PHP-Code:
            <tr> 
                              <td width="180" height="26"><font size="<? echo $FONTSIZE_NORMAL ?>">Versandkosten:</font></td>
                              <td height="26"> <font size="<? echo $FONTSIZE_NORMAL ?>">
                                <?
                                switch($menge) {
                                case 1: $menge2 = 6; break;
                                  case 2: $menge2 = 8; break;
                                   case 3: $menge2 = 10; break;
                                case 4: $menge2 = 10; break;
                                  default: $menge2 = kostenlos;
                                }  
                                echo number_format($menge2,2,",",".")?>
                                <? echo $waehrung ?>
                                </font></td>
                              <td height="26" width="1">&nbsp;</td>
                            </tr>
            Vielen lieben Dank Euch allen.
            Ihr habt mir sehr deutlich gemacht das ich
            A = Viel ruhiger und gewissenhafter und nicht so komplieziert denken muss
            B = Ich noch eine Menge lernen muss um PHP RICHTIG anwenden zu können

            Einen wirkich großen Lob und Dank für Eure Hilfe ... sonst würde ich immer noch um 1000 Ecken denken!

            DANKE

            Kommentar


            • #66
              mach hier
              PHP-Code:
              default: $menge2 kostenlos
              lieber das draus:
              PHP-Code:
              default: $menge2 0

              Sonst wird das hier wahrscheinlich nix:
              PHP-Code:
              echo number_format($menge2,2,",","."
              Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

              Kommentar


              • #67
                Ein (kleiner) Fehler ist da noch

                @koala - deine Anpassung habe ich gemacht

                Folgenden Vorgang verstehe ich nicht:

                Es wird immer nur der Menge-Wert vom ERSTEN Artikel übergeben.

                Beispiel
                Der Warenkorb zeigt:

                Artikel 1 = Menge 3
                Artikel 2 = Menge 1

                Aber in der Bestellübersicht (das ist das PHP was ich angepasst habe) bekomme ich als Mengenwert ($menge) nur "3" angezeigt. Die Artikel werden aber Aufgelistet (also in diesem Fall 2 Artikel)?!
                Es werden die Mengen irgendwie nicht addiert obwohl, soweit ich das beurteilen kann, beides in $menge ausgegeben wir.

                Demnach denke ich das die Übergabe der Werte vom Warenkorb zur Übersicht nicht ganz hinhaut.

                Ich bitte Euch mal das Script des Warenkorbes anzusehen (ich finde den Fehler einfach nicht):
                PHP-Code:
                <? 

                include ("config.php");
                include ("templates.php");


                // Variablen Deklaration

                if(!isset($bestellpreis)) $bestellpreis = "";


                // Programm-Code

                $conn_id = mysql_connect($HOST,$ID,$PW);
                mysql_select_db($DB,$conn_id);

                ?>

                <HTML>
                <HEAD>
                <TITLE><? echo $TITLE1 ?></TITLE>
                <meta http-equiv="Content-Type" CONTENT="text/html; charset=iso-8859-1">

                <STYLE type=text/css>
                <? echo $STYLE1 ?> 
                <? echo $STYLE2 ?> 
                </STYLE>

                </HEAD>
                <body bgcolor="<? echo $BGCOLOR ?>" text="<? echo $TEXT ?>" link="<? echo $LINK ?>" vlink="<? echo $VLINK ?>" alink="<? echo $ALINK ?>">

                <? if ($shop == "enable") { ?>
                <? if ($header == "ok") { ?>

                <table width="<? echo $table_width ?>" border="0" cellspacing="0" cellpadding="0" align="<? echo $table_align ?>">
                  <tr> 
                    <td width="20" height="10">&nbsp;</td>
                    <td height="10"> <b> </b> </td>
                  </tr>
                  <tr>
                    <td width="20">&nbsp;</td>
                    <td> 
                      <? 
                      
                      if ($header_img == "ok") echo "<img src='images/logo.gif' alt='LOGO'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; 
                      if ($header_text != "")  echo "<b><font size='$FONTSIZE_HEADER' color='$FONTCOLOR_HEADER'>$header_text</font></b>";
                      
                      ?>
                    </td>
                  </tr>
                  <tr>
                    <td width="20" height="10">&nbsp;</td>
                    <td height="10">&nbsp;</td>
                  </tr>
                </table>

                <? } ?>

                <table width="<? echo $table_width ?>" border="0" cellpadding="1" cellspacing="0" align="<? echo $table_align ?>">
                  <tr> 
                    <td height="50" width="20">&nbsp;</td>
                    <td height="50" colspan="2"><a href="agbs.php?nr=<? echo $get_vars['nr'] ?>"><img src="images/agbs.gif" alt="Allgemeine Gesch&auml;ftsbedingungen" border="0"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="warenkorb.php?nr=<? echo $get_vars['nr'] ?>"><img src="images/warenkorb.gif" alt="Warenkorb" border="0"></a> 
                    </td>
                  </tr>
                  <tr> 
                    <td height="25" width="20">&nbsp;</td>
                    <td height="25" bgcolor="<? echo $TABLE_COLOR1 ?>" colspan="2">&nbsp;<b><font size="<? echo $FONTSIZE_TITLE3 ?>" color="<? echo $FONTCOLOR_TITLE3 ?>">Warenkorb</font></b></td>
                  </tr>
                  <? if ($get_vars['nr'] == "") {?>
                  <tr> 
                    <td height="50" width="20">&nbsp;</td>
                    <td bgcolor="<? echo $TABLE_COLOR2 ?>" height="50" colspan="2">&nbsp;&nbsp;<font size="<? echo $FONTSIZE_NORMAL ?>">Der 
                      Warenkorb ist leer</font></td>
                  </tr>
                  <? } else { ?>
                  <tr> 
                    <td height="20" width="20">&nbsp;</td>
                    <td bgcolor="<? echo $TABLE_COLOR2 ?>" height="20" colspan="2"> 
                      <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
                        <tr> 
                          <td height="10" colspan="5">&nbsp;</td>
                        </tr>
                        <tr> 
                          <td height="25"><b><font size="<? echo $FONTSIZE_NORMAL ?>">Name</font></b></td>
                          <td colspan="2" height="25"> 
                            <div align="center"><b><font size="<? echo $FONTSIZE_NORMAL ?>">Menge</font></b></div>
                          </td>
                          <td width="100" height="25"> 
                            <div align="right"><b><font size="<? echo $FONTSIZE_NORMAL ?>">Einzelpreis</font></b>&nbsp;&nbsp;</div>
                          </td>
                          <td width="130" height="25"> 
                            <div align="right"><b><font size="<? echo $FONTSIZE_NORMAL ?>">Gesamtpreis&nbsp;&nbsp;</font></b>&nbsp;&nbsp;</div>
                          </td>
                        </tr>
                        <?
                        $result = mysql_query("select * from ".$PREFIX."_Warenkorb where nr = '{$get_vars['nr']}' order by name");
                        
                        while ($row = mysql_fetch_object($result))
                            {
                                
                                $id                = $row->id;
                                $artikelnummer  = $row->artikelnummer;
                                $name           = $row->name;
                                $menge          = $row->menge;
                                $preis            = $row->preis;
                                $variante1        = $row->variante1;
                                $variante2        = $row->variante2;
                                
                                $gesamtpreis    = $menge * $preis;
                                $bestellpreis   = $bestellpreis + $gesamtpreis;
                                
                                if ($variante1 OR $variante2)
                                    {
                            
                                        $name .= "\r\n";
                                        $name .= "(Typ: $variante1 $variante2) ";
                                        $name .= " Art.Nr.: $artikelnummer";
                                    
                                    }
                                else 
                                    {
                                    
                                    $name .= "\r\n";
                                    $name .= "Art.Nr.: $artikelnummer";
                                    
                                    }
                        ?>
                        <tr> 
                          <form name="form1" method="post" action="warenkorb_edit.php?id=<? echo $id ?>&nr=<? echo $get_vars['nr'] ?>">
                            <td height="35"> <font size="<? echo $FONTSIZE_NORMAL ?>"> 
                              <? echo nl2br($name)?>
                              </font> </td>
                            <td width="50" height="35"> 
                              <div align="center"> 
                                <input type="text" name="menge" maxlength="3" size="3" value="<? echo $menge ?>">
                              </div>
                            </td>
                            <td width="30" height="35"> 
                              <div align="center"> 
                                <input type=image src="images/ok.gif" border ="0" alt="&Auml;nderung &uuml;bernehmen" name="image">
                              </div>
                            </td>
                            <td width="100" height="35"> 
                              <div align="right"><font size="<? echo $FONTSIZE_NORMAL ?>"> 
                                <? echo number_format($preis,2,",",".") ?>
                                <? echo $waehrung ?>
                                &nbsp;</font></div>
                            </td>
                            <td width="130" height="35"> 
                              <div align="right"> <font size="<? echo $FONTSIZE_NORMAL ?>"> 
                                <? echo number_format($gesamtpreis,2,",",".") ?>
                                <? echo $waehrung ?>
                                &nbsp;</font>&nbsp;&nbsp;</div>
                            </td>
                          </form>
                        </tr>
                        <? } ?>
                        <tr> 
                          <td height="22" colspan="5"> 
                            <div align="right"><b><font size="<? echo $FONTSIZE_NORMAL ?>">Gesamtpreis:&nbsp;</font></b><b><font size="<? echo $FONTSIZE_NORMAL ?>"> 
                              <? echo number_format($bestellpreis,2,",",".") ?>
                              <? echo $waehrung ?>
                              &nbsp;</font></b>&nbsp;&nbsp;</div>
                          </td>
                        </tr>
                        <tr> 
                          <td height="22" colspan="5">&nbsp;</td>
                        </tr>
                        <tr>
                          <td height="22" colspan="5"> 
                            <div align="right"><font size="<? echo $FONTSIZE_NORMAL ?>"> Alle 
                              Preise inklusive Mehrwertsteuer und zuz&uuml;glich Versandkosten.</font> 
                            </div>
                          </td>
                        </tr>
                        <tr>
                          <td height="22" colspan="5">&nbsp;</td>
                        </tr>
                        <tr> 
                          <td height="22" colspan="5"> 
                            <div align="right"><a href="warenkorb_delete.php?nr=<? echo $get_vars['nr'] ?>"><img src="images/loeschen.gif" border="0" alt="Warenkorb l&ouml;schen"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="warenkorb_senden_1.php?nr=<? echo $get_vars['nr'] ?>"><img src="images/bestellen.gif" alt="Warenkorb bestellen" border="0"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
                          </td>
                        </tr>
                        <tr> 
                          <td height="10" colspan="5">&nbsp;</td>
                        </tr>
                      </table>
                    </td>
                  </tr>
                  <? } ?>
                  <tr> 
                    <td height="20" width="20">&nbsp;</td>
                    <td height="20" bgcolor="<? echo $TABLE_COLOR1 ?>" width="100">&nbsp;<b><font size="<? echo $FONTSIZE_NORMAL ?>"><a class="zurueck" href="javascript:history.back();">zur&uuml;ck</a></font></b> 
                    </td>
                    <td height="20" bgcolor="<? echo $TABLE_COLOR1 ?>">&nbsp;</td>
                  </tr>
                </table>

                <?
                }
                else 
                {
                ?>
                      
                <table width="<? echo $table_width ?>" border="0" cellspacing="0" cellpadding="0" align="<? echo $table_align ?>">
                  <tr>
                    <td width="20">&nbsp;</td>
                    <td><b> 
                      <? echo $shopmeldung ?>
                      </b> </td>
                  </tr>
                </table>

                <? 
                }
                mysql_close($conn_id);
                ?>

                </BODY>
                </HTML>
                Das wäre wirklich sehr nett

                Hier mal ein Screenshot. Dieser zeigt oben den Warenkorb und darunter die Bestellübersicht (neben den Versandkosten steht der Rückgabewert für "$menge"

                Kommentar


                • #68
                  schreib statt <? besser <?php.

                  PHP-Code:
                  if(!isset($bestellpreis)) $bestellpreis ""
                  $bestellpreis wird immer "" sein, da er nie zuvor gesetzt wird.

                  Dein html-Code ist von vorgestern: benutz CSS zum stylen.

                  PHP-Code:
                  mysql_close($conn_id); 
                  kannst ersatzlos streichen.

                  Es fehlt ganz oben im Script error_reporting(E_ALL);.

                  mysql_error fehlt.

                  wo siehst Du in dem geposteten Source eine Addition ?

                  PHP-Code:
                  $menge          $row->menge
                  Lern doch die Grundlagen.

                  Bis wir hier alles erklärt haben wirds sehr, wirklich sehr spät.

                  Und es gibt doch sooo viele PHP-Tutorials.
                  Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

                  Kommentar


                  • #69
                    Zitat von Koala
                    PHP-Code:
                    mysql_close($conn_id); 
                    kannst ersatzlos streichen.
                    ...is' aber kein Fehler!
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #70
                      A = Viel ruhiger und gewissenhafter und nicht so komplieziert denken muss
                      B = Ich noch eine Menge lernen muss um PHP RICHTIG anwenden zu können
                      C = Das Problem auch mit Hintergrund gleich vernünftig beschreiben. Sowas wie in #63 wäre im Ausgangsposting gut gewesen, um die Frage zu verstehen. Lieber einmal mehr drüber gucken und nachdenken, ob der Gegenüber das Anliegen auch versteht.
                      [COLOR="#F5F5FF"]--[/COLOR]
                      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                      [COLOR="#F5F5FF"]
                      --[/COLOR]

                      Kommentar


                      • #71
                        ...is' aber kein Fehler!
                        hab ich auch nicht behauptet

                        if(!isset($bestellpreis)) $bestellpreis = ""; ist ja auch keiner ...
                        Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

                        Kommentar


                        • #72
                          @Koala
                          Das war eher so gemeint, daß es nicht schadet mysql_close(); anzuwenden.
                          Bei Scriptende wird die Verbindung zwar eh getrennt, aber ich persönlich sehe immer zu, daß die von mir geöffneten Verbindungen auch immer von mir geschlossen werden.
                          Daher finde ich es nicht ratsam dem TE zu raten dies ersatzlos zu streichen. Wenn er es anwendet ist das ok. Wenn nicht auch gut.
                          Competence-Center -> Enjoy the Informatrix
                          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                          Kommentar

                          Lädt...
                          X