Dezimalzahlen richtig anzeigen...

Alles, was PHP betrifft, kann hier besprochen werden.

Dezimalzahlen richtig anzeigen...

Postby TTP » 22. February 2004 19:59

mein Resultat:
Code: Select all
<table cellspacing="0" border="1" width="60%">
<tr><td width="*"><b>Artikel:</b><br><br></td><td width="65"><b>Stück:</b><br><br></td><td width="105"><b>Einzelpreis:</b><br><br></td><td width="105"><b>Gesamtpreis:</b><br><br></td></tr>
<tr><td>testartikel 7</td><td align="right">7 &nbsp;&nbsp;&nbsp;</td><td align="right">50.50 EUR</td><td align="right">353.5 EUR</td></tr><tr><td>testartikel 7</td><td align="right">7 &nbsp;&nbsp;&nbsp;</td><td align="right">50.50 EUR</td><td align="right">353.5 EUR</td></tr><tr><td>Testartikel Blubb</td><td align="right">1 &nbsp;&nbsp;&nbsp;</td><td align="right">100,00 EUR</td><td align="right">100 EUR</td></tr><tr><td colspan="4" align="right"><br>SUMME: &nbsp;&nbsp;807 EUR </td></tr></table>


mein Quellcode:
Code: Select all
<table cellspacing="0" border="1" width="60%">
<tr><td width="*"><b>Artikel:</b><br><br></td><td width="65"><b>Stück:</b><br><br></td><td width="105"><b>Einzelpreis:</b><br><br></td><td width="105"><b>Gesamtpreis:</b><br><br></td></tr>
<?
  foreach($warenkorb as $anzeige)
{
  $count1++;
  $abfrage = "SELECT * FROM artikel WHERE id LIKE '$anzeige'";
  $ergebnis = mysql_query($abfrage);
  $row = mysql_fetch_object($ergebnis);
  echo("<tr><td>$row->artikelname</td>");
  $count2 = $warenkorb[$count1];
  echo("<td align=\"right\">" . $count2 . " &nbsp;&nbsp;&nbsp;</td>");
  echo("<td align=\"right\">" . $row->preis . " EUR</td>");
  $reihe= $row->preis * $count2;
  echo("<td align=\"right\">" . $reihe . " EUR</td></tr>");
  if(empty($spalte))
  {
    $spalte = array("$reihe"); 
  }
  else
  {
    array_push($spalte, "$reihe");
  }
 
}
echo("<tr><td colspan=\"4\" align=\"right\"><br>SUMME: &nbsp;&nbsp;" . array_sum($spalte) . " EUR </td></tr>");
  ?>
</table>


wie änder ich jetzt den Quellcode, dass ich in meinem Resultat richtige Dezimalzahlen habe? In der Datenbank haben machne Artikel einen , anstatt einen .

Wer kann mein Script editieren? o.o
*selber zu blöd dazu bin*
User avatar
TTP
 
Posts: 310
Joined: 30. August 2003 19:38
Location: Wolfsburg

Postby Stefan » 22. February 2004 22:04

Servus,

* http://de.php.net/array_sum
Wenn Du genau hinschaust, wird klar, daß Du hierfür keine Kommata im Betrag verwenden darfst.

Du kannst es allerdings auch mit "round" oder "number_format" versuchen.
* http://de.php.net/round
* http://de.php.net/number_format

In Deines speziellen Fall müsste das So aussehen:
Code: Select all
SUMME: &nbsp;&nbsp;" . round (  array_sum($spalte) , 2)


Gut, damit ist wohl "DAS"! Problem gelöst, allerdings würde ich Dir dringend raten Dein ganzes Warenkorbscript zu überarbeiten/überdenken.

Benutze den Feldtyp "DECIMAL" für die Preisspalte der Artikel. Aber vorsicht, nicht gleich anwenden, da die "," Beträge um die Stellen hinter dem "," erleichtert werden. Sorge dafür das die Beträge in EINER Form in die DB kommen.
* http://www.mysql.de/doc/de/Column_types.html

[Query]
16.14. Warum soll ich nicht SELECT * schreiben?
* http://www.dclp-faq.de/q/q-sql-select.html

Sind Deine Artikel_ids nicht eindeutig?
Warum benutzt Du " WHERE id LIKE = '$anzeige'"?

Benutze eine Warenkorbtabelle, in der sowohl Anzahl der Artikel, Artikel ID, die Summe aus Anzahl und Einzelpreis, als auch eine id(SESSION) um die Warenkorbzeile auch einem Besucher zuordnen zu können, gespeichert sind.
Dann könntest Du zumindest die Summe des Warekorbs mit:
SELECT SUM(artikel_summe) FROM `warenkorb` WHERE `sessID` = '$SESSID' rausholen

Noch ein Tipp,
Schau Dir mal fertige und kostenlose phpshops an, um Dir "Anreize" zu holen.


* http://www.cauposoft.de/download_csc.php?iStep=3&sid=
-> klein schlank und sehr gut anpassbar
* http://oscommerce.com
-> Ziemlich groß und schlecht durchschaubar, klappt aber wenn man sich damit auseinander setzt. Schlecht ist, das der shop auf register_globals on besteht. Aber das dürfte Dir egal sein :-)

* http://www.dclp-faq.de/q/q-scripte-shop.html
-> Sammlung von shops, die ausgewählt sind.

beste Grüße
Stefan
User avatar
Stefan
 
Posts: 475
Joined: 26. December 2002 22:36
Location: Mitten in der sonnigen Südpfalz

Postby TTP » 22. February 2004 22:57

mein Warenkorbscript gefällt mir sowieso nicht ^^

irgendwie is das nur ne Notlösung, haste ne bessere Idee, ich hab irgendwie keine....
User avatar
TTP
 
Posts: 310
Joined: 30. August 2003 19:38
Location: Wolfsburg

Postby TTP » 26. February 2004 13:04

Stefan wo find ich denn nen Workshop, wo ich Session IDs und ne MySQL verbinde? kannste mir da helfen?
User avatar
TTP
 
Posts: 310
Joined: 30. August 2003 19:38
Location: Wolfsburg

Postby DJ DHG » 26. February 2004 14:59

Moin Moin

ich bin zwar nicht Stefan :mrgreen: , aber vieleicht helfen dir die beiden links.

http://tut.php-q.net/
http://tut.php-q.net/sessions.html

mfg DJ DHG
User avatar
DJ DHG
AF Moderator
 
Posts: 2455
Joined: 27. December 2002 13:50
Location: Kiel

Postby TTP » 26. February 2004 15:43

danke, das hilft mir aber nicht wirklich, mit sessions umgehen kann ich, ich weiß nur nicht wie ich das mit den dbs machen soll, weil wenn ich 500000 temp tabellen habe, bringt mich das irgendwann nicht mehr weiter.... die müssen sich ja auch wieder löschen, auch wenn die bestellung nicht abgesandt wird... ?!
User avatar
TTP
 
Posts: 310
Joined: 30. August 2003 19:38
Location: Wolfsburg

Postby Stefan » 28. February 2004 09:17

Morsche TTP,

was meinst Du mit tmp Tabellen?

Die Einträge der Warenkorbtabelle(die man keinesfalls als "tmp" bezeichnen kann), löschst Du entweder wenn die Bestellmail daraus generiert und auch verschickt wurde(nicht zu empfehlen), oder Du löschst Die betreffenden Zeilen, wenn der Auftrag durchgeführt/verschickt wurde per klick im Adminbereich. Oder anhand eines Merkmales z.B Datum automatisch.


Gruß
Stefan
User avatar
Stefan
 
Posts: 475
Joined: 26. December 2002 22:36
Location: Mitten in der sonnigen Südpfalz


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests