php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 08-01-2008, 23:05
escape
 Registrierter Benutzer
Links : Onlinestatus : escape ist offline
Registriert seit: Aug 2003
Ort: Diepholz
Beiträge: 142
escape ist zur Zeit noch ein unbeschriebenes Blatt
escape eine Nachricht über ICQ schicken
Standard Rechnen & Array's

Hallo Community ich schreibe gerade ein Shopsystem oder besser eine Firmenpage für mich selbst mit intregierten Shop.
Ich scheitere allerdings an der Mathematischen Berechnung in Php um das Gesamtergebnis zu bekommen.
Was verrückt ist das ich das Ergebnis habe und es sich nicht umsezten lässt.

Total verrückter Schuh ich weiss nimmer weiter.

Die Ausgabe ist richtig und ohne Fehler! Es wird berechnet wie er soll ! Allerdings übergebe ich es an
Smarty IN foreach dann werden alle Ergebnisse überschrieben und der letzte Wert Einzelpreis wird angezeigt und das bei allen Produkten.

Ausgabe über Header mit echo schaut so aus:

7.78 <- 2 produkte addiert OK
13.59 <- 1 produkt OK
12.00 <- 1 produkt OK
3.46 <- 1 produkt OK
"ich bin zufrieden" die Werte stimmen !

Hier die warenkorb.php (Auschnitt)

PHP-Code:
/*
 * READ wenn Befehl Action = READ
 */    
     
if ($_GET["action"] == "read"){
     
         
$sql "SELECT 
                     menge, produkt_preis 
                FROM 
                    sh_warenkorb 
                WHERE 
                    sid = '$sid'
                "
;
         
             
$result $db->query($sql);
             
             while(
$row mysql_fetch_object($result))
             {
            
             
$menge $row -> menge;
             
$produkt_preis $row -> produkt_preis;
             
             
$gespreis $menge $produkt_preis;
             
$gespreis sprintf '%02.2f'$gespreis );
            
             echo 
$gespreis."<br>";
            
             
//ARRAY HIER EINBRINGEN
             
             //$gespreis = array("$gespreis");
             
             //print_r($gespreis);

             
}
            
//---------------Oben Berechnung der Gesamtkosten----------        
    
//---------------Unten Auswahl der Produkte im Warenkorb---            

            
$sql "SELECT 
                        produkt_name, produkt_artnr, produkt_preis, pid, sid, wkid, menge, produkt_titel
                    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);
                
                
$title=$conf['cms_name']."D&G Gebäudereinigung Shop - Gebäudereinigung";
                
$nowtext="Start";
                
                INCLUDE (
LOADTEMPLATE);
                
$tpl->assign('inhalt',$inhalt);
                
$tpl->assign('gespreis',$gespreis);
                
$tpl->display(template_dir.'bin/warenkorb/warenkorb.tpl');
 } 
Hier die Warenkorb.tpl
In dieser Datei werden meine Produkte gelistet aber die Gesamtpreise stimmen nicht er ersetzt alle
Werte mit dem Letzten Wert des Array's was in diesem Fall bedeutet das jedes Produkt 3.46 kostet.

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.produkt_preis</div></td>
    <
td width="15%"><div align="right">{$gespreis}<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>
{/foreach} 
Ich gehe mal davon aus das ich nen simplen Fehler habe aber ich weiss nimmer weiter ich kanns 100 mal duchsehen und finde den haken nicht.

Ich danke für Tips im vorraus

Wer mag kann es sich direkt online ansehen da ich in Php kein Könner bin geschweige im großen erklären.

http://gebäudereinigung-diepholz.de/sh_geb/sh_geb.php

Links im Menue "Automatenreiniger & Beschichtungen" habe ich ein paar Produkte eingefügt zum testen. Wenn diese im Warenkorb liegen und man dann "Warenkorb aktualisieren" kommt der Fehler
Mit Zitat antworten
  #2 (permalink)  
Alt 08-01-2008, 23:23
ZombieChe
 Member
Links : Onlinestatus : ZombieChe ist offline
Registriert seit: Apr 2004
Ort: Hannover
Beiträge: 225
ZombieChe ist zur Zeit noch ein unbeschriebenes Blatt
ZombieChe eine Nachricht über ICQ schicken
Standard

$gespreis wird im ersten Teil immer wieder überschrieben, also wird immer nur der letzte gespeichert.
Abgesehen davon ist da ziemlich viel Redundanz in deinem Code. Du kannst den Gesamtpreis direkt im SQL Query berechnen und musst dafür nicht php bemühen.

1.:
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']."'
                    "

Dann kannst du den direkt aus dem Array heraus nutzen:
2.:
PHP-Code:
<td width="15%"><div align="right">{$korb.gespreis}<a href="warenkorb.php?action=delete&wkid={$korb.wkid}"
Geht schneller, benötigt weniger Code und ist sehr viel übersichtlicher.
Mit Zitat antworten
  #3 (permalink)  
Alt 08-01-2008, 23:32
escape
 Registrierter Benutzer
Links : Onlinestatus : escape ist offline
Registriert seit: Aug 2003
Ort: Diepholz
Beiträge: 142
escape ist zur Zeit noch ein unbeschriebenes Blatt
escape eine Nachricht über ICQ schicken
Standard

Hey herzlichen DANK

Nun habe ich das prob das er ganze Zahlen wie 60.00€ ohne Komma macht und nur 60 ausgibt.

Ansonsten Danke nochmal wusste nicht das ich sowas in Sql berechnen lassen kann und dann noch gleich einfliesen zulassen!


Wieder etwas gelernt Daaaaanke

Geändert von escape (08-01-2008 um 23:43 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 09-01-2008, 10:55
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Nun habe ich das prob das er ganze Zahlen wie 60.00€ ohne Komma macht und nur 60 ausgibt.
Dafür gibt's number_format()
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #5 (permalink)  
Alt 09-01-2008, 11:11
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Nun habe ich das prob das er ganze Zahlen wie 60.00€ ohne Komma macht und nur 60 ausgibt.
in Deinem Warenkorb haste aber schon mal formatiert:
Code:
$gespreis = sprintf ( '%02.2f', $gespreis ); // wobei %.2f langt
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #6 (permalink)  
Alt 10-01-2008, 00:38
escape
 Registrierter Benutzer
Links : Onlinestatus : escape ist offline
Registriert seit: Aug 2003
Ort: Diepholz
Beiträge: 142
escape ist zur Zeit noch ein unbeschriebenes Blatt
escape eine Nachricht über ICQ schicken
Standard

Mein Problem ist, das ich ja nun per SQl den Gesammtpreis ermittel und in ein Array bringe.
Ich weiss nicht wie ich nun diesen Wert vor oder danach formatieren soll. Die Ausgabe einzelner Produkte addiert stellt kein Problem dar.

Ich habe es so geregelt, das der Gesammtpreis eines Produkts x Menge = Gesammtpreis in der Sql mit abgelegt wird.
Aber genau dieser Wert ist es den ich Auslese un der diese Komma Probleme macht.

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); 
Fehlerfrei !
PHP-Code:
//---------------GESAMTPREIS ALLER PRODUKTE START-------------    
$sql "SELECT 
                  gespreis 
            FROM 
                 sh_warenkorb 
           WHERE 
                 sid = '"
.$_SESSION['sid']."'
            "
;
            
            
$result $db->query($sql);
            
            while(
$row=mysql_fetch_row($result)) 
            {
                  
$gesammt $gesammt $row[0];
            }
            
$gesammt sprintf '%02.2f'$gesammt );
//---------------GESAMTPREIS ALLER PRODUKTE ENDE------------- 
Also meines erachtens schreibe ich die Daten falsch in die Sql.
Aber ich kann ja nicht einfach folgendes schreiben




PHP-Code:
$sql select
                  
...
                  ...
                  (
menge produkt_preis) AS gespreis sprintf %02.2f $gesammt
           FROM
                  
...
                  ... 
Ich wäre hier nochmal für einen Rat sehr dankbar

Das lustige an der Sache ist, wenn es eine Kommazahl "12,95" ist gibt er sie Fehlerfrei wieder ,
lautet der Betrag jedoch 14,30 gibt er ein simples 14,3 wieder. Ansonsten bin ich mit dem Script zufrieden

Gruß Thomas

Geändert von escape (10-01-2008 um 00:45 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:32 Uhr.