SQL Select aber Wert bleibt NULL

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

  • SQL Select aber Wert bleibt NULL

    Hallo Community,

    ich möchte aus meiner Datenbank mehrere Werte eines Produktes mit einer SessionID und einer ProduktID selecten und addieren.

    beziehen, -> addieren, -> ausgeben

    Ich habe aber als Resultat immer 0.00 €

    Was mache ich falsch ?

    PHP-Code:
                $sql "SELECT 
                            gespreis, pid
                        FROM 
                            sh_warenkorb 
                        WHERE 
                            sid = '"
    .$_SESSION['sid']."' 
                            & 
                            pid = '"
    .$_SESSION['pid']."'
                        "
    ;
                
                
    $result $db->query($sql);
                
                while(
    $row=mysql_fetch_row($result)) 
                {
                      
    $gesprodukt $gesprodukt $row[0];
                }
                
    $gesprodukt sprintf '%02.2f'$gesprodukt ); 
    Wäre für Hilfe sehr dankbar.

    Gruß Thomas

  • #2
    Du legst $gesprodukt innerhalb der Schleife an!
    PHP-Code:
    $gesprodukt 0;
    while(
    $row=mysql_fetch_row($result)) {
      
    $gesprodukt += $row[0];

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Fehlerhandling scheint nicht dein Ding zu sein. Ich denke wenn error_reporting hoch genug eingestellt wäre, solltest du eine Fehlermeldung bekommen (ev. auch von der DB).
      Offensichtlich sind sowohl $gesprodukt, als auch der Wert aus der DB entweder undefiniert, oder 0.

      PS
      Warum holst du die pid aus der DB, wenn du sie schon hast??
      Gruss
      H2O

      Kommentar


      • #4
        Ich erkläre es,

        der User legt sich ein Produkt in den Korb.

        Das produkt hat eine Pid (ProduktID) nun sagt der User ach mensch toll da lege ich mir noch 4 von in den Korb.

        Das macht in dem Fall 5 Produkte selbe PID * Preis = gespreis das berechne ich on the Fly und schreibe es in die DB nun kann es sein das der User aber noch andere Produkte im Warenkorb hat und genau diese will ich filtern.

        Jedes Produkt mit einer PID und einer eindeutigen SID sollen aus sh_warenkorb addiert werden. So das ich jedes einzelne Produkt mit Endpreis ausgeben kann.

        Und das Habe ich ja schon eigentlich gelöst! Mit der direkten Berechnung in Sql aber ich bekomme das Resultat nicht formatiert.


        Ist doch totaler Humbug was ich hier schreibe!!!
        Denkfehler sag ich nur

        Zuletzt geändert von escape; 10.01.2008, 16:49.

        Kommentar


        • #5
          Das ist nun aber etwas ganz anderes, als in deinem ersten Post. Vielleicht kannst du noch schildern, wo das Problem ist. Da du hier ja keine Ausgabe hast, kann es ja nicht die Formatierung sein.
          Gruss
          H2O

          Kommentar


          • #6
            Also ich fasse es mal anders zusammen ,..
            ich stehe mit PHP auf Kriegsfuss

            Alle Produkte zusammen addiert ermittel ich so.
            Damit habe ich den Preis aller Produkte ermittelt. Dieser wird auch
            Fehlerfrei und ordentlich mit Komma angezeigt.

            PHP-Code:
                        $sql "SELECT gespreis FROM sh_warenkorb WHERE sid = '".$_SESSION['sid']."'";
                        
                        
            $result $db->query($sql);
                        
                        while(
            $row=mysql_fetch_row($result)) 
                        {
                              
            $gesamt $gesamt $row[0];
                        }
                        
            $gesamt sprintf '%02.2f'$gesamt ); 


            Aber einzelne Produkte die einen runden Wert haben werden fehlerhaft ausgegeben. Da wird mal ebend eine 0 vergessen das liegt sicher an meiner Formatierung. Ich berechne den "gespreis"
            in der SQl und da habe ich Ihn ja nicht formatiert.

            PHP-Code:
                       $sql "SELECT
                                    produkt_name, produkt_artnr, produkt_preis, pid, sid, wkid, menge, produkt_titel, (menge * produkt_preis) AS gespreis
                                FROM 
                                    sh_warenkorb
                                WHERE 
                                    sid = '"
            .$_SESSION['sid']."'
                                "
            ;
                        
                        
            $result $db->query($sql);
                        
                        
            $inhalt =  array();
                        while(
            $row mysql_fetch_assoc($result))
                        {
                        
            $inhalt[] = $row;
                        }
                        
            $my mysql_query($sql); 
            Das schaut dann so aus.



            Den Wert gebe ich wie folgt aus:
            PHP-Code:
            {foreach from=$inhalt item=korb name=test}
            <
            form class="test" action="warenkorb.php?action=edit&wkid={$korb.wkid}method="post">
            <
            table width="100%">
              <
            tr>
                <
            td width="45%"><div align="left"><a href="{$include_dom}produkt/produkt_xl.php?pid={$korb.pid}"><strong>{$korb.produkt_name}</strong></a><br />
                <
            span style="font-size:7pt; font-family:"Times New Roman", Times, serif;">{$korb.produkt_titel}...</span></div></td>
                <
            td width="25%"><div align="center">
                  <
            input size="3" type="text" name="menge" class="field" value="{$korb.menge}"/>
                  <
            input type="submit" name="aendern" value="Ändern">
                </
            div></td>
                <
            td width="15%"><div align="right">{$korb.gespreis€ </div></td>
                <
            td width="15%"><div align="right"><a href="warenkorb.php?action=delete&wkid={$korb.wkid}"><img style="border:0px;" src="{$image_url}shop/delete.gif"></a></div></td>
                
              </
            tr>
            </
            table>
            </
            form
            Ich möchte ebend hinzufügen, das ich wirklich bemüht bin Php zu lernen aber ich verstehe oft einiges nicht
            und stelle mich da sehr tollpatschig an. Bin aber immer an der Sache dran und versuche mein Wissen aufzubessern.

            Gruß Thomas
            Zuletzt geändert von escape; 10.01.2008, 18:54.

            Kommentar


            • #7
              problem gelöst

              Juhuuuu man kann eine SQL Berechnung on the Fly formatieren
              Das scahut dann so aus


              PHP-Code:
              //---------------Unten Auswahl der Produkte im Warenkorb---            

                         
              $sql "SELECT
                                      produkt_name, produkt_artnr, produkt_preis, pid, sid, wkid, menge, produkt_titel, FORMAT(menge*produkt_preis,2) AS gespreis
                                  FROM 
                                      sh_warenkorb
                                  WHERE 
                                      sid = '"
              .$_SESSION['sid']."'
                                  "
              ;
                          
                          
              $result $db->query($sql);
                          
                          
              $inhalt =  array();
                          while(
              $row mysql_fetch_assoc($result))
                          {
                          
              $inhalt[] = $row;
                          }
                          
              $my mysql_query($sql);
                          
              //---------------GESAMTPREIS ALLER PRODUKTE    START------------- 

              Kommentar

              Lädt...
              X