Hilfe bei Warenkorb > Preise zusammenrechnen

Kalma

Erfahrenes Mitglied
Hey,

habe einen Warenkorb für http://brien.dfmusik.de programmiert, der auch soweit schon ganz gut geht, halt bis auf die Tatsache, das ich nicht weiß, wie ich alle Preise zusammenrechnen lassen soll :(

Ich habe eine Seite "warenkorb.php" wo alle ausgewählten Artikel aufgelistet werden. Nun
sollen unter der ganzen Liste alle Preise zusammengerechnet werden.

Hier mein Script:

PHP:
<div class="header">Warenkorb</a>

<?php
	$Query = "SELECT * FROM merch WHERE `ip`='$ip' AND `datum`='$datum'";
	$Result = mysql_query($Query);
?>

	<form action="?section=delbuy2" method="post">
	<table border="0" class="story" width="100%">
		<tr>
			<td>
				<?php
					if (mysql_num_rows($Result) == 0)
						{
							echo "<b>Du hast <u>keine</u> Waren im Warenkorb</b>";
						}
					else
						{
							echo "<b>Du hast <u>".mysql_num_rows($Result)."</u> Ware(n) im Warenkorb</b>";
						}
				?>
			</td>
		</tr>
		<tr>
			<td>
				<table border="0" class="story" width="100%">
					<tr>
						<td width="10%">
							<b>Miniatur</b>
						</td>
						<td width="70%">
							<b>Beschreibung</b>
						</td>
						<td align="center">
							<b>Preis</b>
						</td>
						<td align="center">
							<b>Entfernen</b>
						</td>
					</tr>
						<?php
							while ($s = mysql_fetch_array($Result))
								{
									$Item = mysql_query("SELECT * FROM shop WHERE `id`=".$s['wid']." AND `kat`=".$s['kid']."");
									$shop = mysql_fetch_array($Item);
									$PREIS = mysql_query("SELECT `preis` FROM shop WHERE `id`=".$shop['id']."");
									$p		 = mysql_fetch_array($PREIS);
									$anzahl = mysql_num_rows($PREIS);
						?>
					<tr>
						<td width="10%" >
							<?php echo "<img src=\"".$shop['bild']."\"/>"; ?>
						</td>
						<td width="70%">
							<?php echo "".$shop['beschreibung'].""; ?>
						</td>
						<td align="center">
							<b width="10%"><?php echo "".$shop['preis'].""; ?></b>
						</td>
						<td align="center">
							<input type="checkbox" name="del[]" value="<?php echo "".$s['id'].""; ?>" class="input" /></b>
						</td>
					</tr>
						<?php
								}
						?>
					<tr>
						<td colspan="3" align="right">
							<b>Gesamt</b>
						</td>
						<td align="right">
							<?php
								//rechnen
								$preis = "".$p['preis']."";
								$preis = $preis*$anzahl;
							?>
					<tr>
				</table>
			</td>
		</tr>
			<td>
				<a href="?section=gotobuy">Zur Kasse</a> |
				<input type="submit" value="Ausgewählte Löschen" class="input" />
			</td>
		</tr>
	</table>
	</form>

Kann mir sagen, wie das geht?

MfG
David
 
Zuletzt bearbeitet:
Ich hab mir das Script nicht angeschaut aber du könntest sämtliche Preise in ein Array packen und dann mithilfe der [phpf]array_sum[/phpf] Funktion die Werte addieren.
 
hey,

danke schonmal für die Antwort. Nur, mit Arrays hab ichs nicht so^^
Könnteste nen beispiel machen?

Gibts noch andere möglichkeiten

:rolleyes:
 
Hallo David Flögel,

PHP:
<?php
 while ($s = mysql_fetch_array($Result))
  {
  $Item = mysql_query("SELECT * FROM shop WHERE `id`=".$s['wid']." AND `kat`=".$s['kid']."");
  $shop = mysql_fetch_array($Item);
  $PREIS = mysql_query("SELECT `preis` FROM shop WHERE `id`=".$shop['id']."");
  $gesamtpreis+=$PREIS;   //Gesamtpreis für spätere Ausgabe ausrechnen                                  
  $p         = mysql_fetch_array($PREIS);
  $anzahl = mysql_num_rows($PREIS);
?>


mfg,
blount
 
David Flögel hat gesagt.:
hey,
Nur, mit Arrays hab ichs nicht so^^

Schlechte Ausrede, lesen kann jeder ;)
array Funktionen

Wenn ich sehe was du da alles schon gemacht hast, vorrausgesetzt das hast du selber gemacht, dann kann es ja nicht so schwer sein ein wenig zu lesen und zu lernen ;)

Ich mein wo bleibt de rErfolg wenn man alles vorgekaut bekommt. :)
 
Ich zeig dir das jetzt mal anhand eines Beispieles wenn du es verstanden hast kannst du es auf dein Problem ansetzen.
Benötigte PHP Funktionen:
[phpf]array[/phpf]
[phpf]array_sum[/phpf]

PHP:
<?php

$array = array (); //ich erstelle ein Array mit dem Namen "array"
$array[] = 1; // ich schreibe 1 in das Array mit dem Namen "array"
$array[] = 2;// ich schreibe 2 in das Array mit dem Namen "array"
$gesamt = array_sum ($array); /* ich wende auf das Array mit dem Namen "array" die Funktion array_sum an und speichere mir deren Ergebnis in der Variable mit dem Namen "gesamt"*/
echo $gesamt; /* ich lasse mir die Variable mit dem Namen "gesamt" ausgeben und erhalte als Ergebniss 3+*/
?>

Ich hoffe du verstehst das jetzt.
 
blount hat gesagt.:
Hallo David Flögel,

PHP:
<?php
 while ($s = mysql_fetch_array($Result))
  {
  $Item = mysql_query("SELECT * FROM shop WHERE `id`=".$s['wid']." AND `kat`=".$s['kid']."");
  $shop = mysql_fetch_array($Item);
  $PREIS = mysql_query("SELECT `preis` FROM shop WHERE `id`=".$shop['id']."");
  $gesamtpreis+=$PREIS;   //Gesamtpreis für spätere Ausgabe ausrechnen                                  
  $p         = mysql_fetch_array($PREIS);
  $anzahl = mysql_num_rows($PREIS);
?>

Und wo kommt bei dir die $gesamtpreis variable her?

David

mfg,
blount
 
Du stellst dich an "$gesamtpreis += $preis" ist das selbe wie "$gesamtpreis = $gesamtpreis + $preis" nur kürzer. In worten der Inhalt aus der Variable $gesamtpreis wird mit dem Inhalt aus der Variable $preis addiert und in die Variable $gesamtpreis geschrieben. Somit wird bei jedem durchlauf der while Schleife der Wert der Variable $gesamtpreis aktuallisiert und zwar immer mit dem eigenen Wert und dem Wert der Variable $preis.
 
Nichts zu Danken war ja deine Idee das Problem so zu lösen. Aber es freut mich das es dich freut (was für ein blöder Satz) :-) und vielen Dank für das Lob :p.
 
Zurück