Autor | Zpráva | ||
---|---|---|---|
majja01 Profil |
#1 · Zasláno: 22. 8. 2013, 10:11:32
ahoj dělám takový jednoduchý e-shop a skončil jsem u vypisování zboží v košíku.
potřebuji udělat součet všech cen. ale problém je v tom že některé zboží je vícekrát: tak jsem to vyřešil takto: $ks = htmlspecialchars($row["name"]) . " " . $_SESSION["kosik"][$row["id"]]; $soucet = $row["price"] * $ks; echo $soucet; $soucet = $soucet + $soucet; echo $soucet ; cena: 200kč 300kč sečte to 600kč místo 500kč nevíte někdo co s tím ? díky za odpovědi |
||
Kajman Profil |
#2 · Zasláno: 22. 8. 2013, 10:20:04
Pro součet jednoho řádku a součet všech řádků používejte jinak nazvané proměnné.
|
||
majja01 Profil |
#3 · Zasláno: 22. 8. 2013, 11:22:40
$vysledek = $soucet + $soucet; echo $vysledek ; |
||
Taps Profil |
#4 · Zasláno: 22. 8. 2013, 11:30:46
majja01:
zkus <? $celkem += $soucet; echo $celkem; ?> |
||
Alphard Profil |
#5 · Zasláno: 22. 8. 2013, 11:31:43
Jestli výsledky vypisujete v nějakém cyklu, bude nejjednodušší postupně přičítat cenu k nějaké proměnné;
$celkova = 0; foreach (...) { $celkova += $soucet; } Mimochodem, jste si jistý, že je rozumné dělat hned eshop? Doufám, že ho nechcete reálně nasadit... |
||
majja01 Profil |
#6 · Zasláno: 22. 8. 2013, 11:43:08
Taps:
nn furt to samé Alphard myslwl jste něco takového? $celkova = 0; foreach ($soucet as $pole) { $celkova += $soucet; } „Mimochodem, jste si jistý, že je rozumné dělat hned eshop? Doufám, že ho nechcete reálně nasadit...“ já se na něm učím php a navíc ten eshop je jen v session |
||
Taps Profil |
#7 · Zasláno: 22. 8. 2013, 11:48:28
majja01:
zkus sem vložit větší část kodu. Z té části kterou jsi sem vložil se jen velmi špatně odhaduje chyba. |
||
majja01 Profil |
#8 · Zasláno: 22. 8. 2013, 11:55:05
Taps:
tady to je <? // připojení do databáze mysql_connect("127.0.0.1", "root", ""); mysql_select_db("mak"); mysql_query("SET CHARACTER SET utf8"); mysql_set_charset('utf8'); session_start(); if ($_SESSION["kosik"]) { $sql = mysql_query("SELECT id, nazev, price FROM zbozi WHERE id IN ('" . implode("', '", array_keys($_SESSION["kosik"])) . "')"); while ($row = mysql_fetch_array($sql)) { $ks = htmlspecialchars($row["name"]) . " " . $_SESSION["kosik"][$row["id"]]; $soucet = $row["price"] * $ks; //tady je vypsání do tabulky } } $celkova = 0; foreach ($soucet as $celkova) { $celkova += $soucet; } echo $celkova; // toto je sečtení položek (kusů) $s = $_SESSION["kosik"]; $kss = array_sum($s); echo "<tr><td>celkově</td><td> </td><td>".$kss."</td><td> </td><td>".$kcc."</td><td> </td></tr>"; ?> |
||
xROAL Profil |
#9 · Zasláno: 22. 8. 2013, 12:21:08
Skús to takto:
$celkem = 0; while($row = mysql_fetch_array($sql)){ $ks = htmlspecialchars($row["name"]) . " " . $_SESSION["kosik"][$row["id"]]; $soucet = $row["price"] * $ks; $celkem += $soucet; // vypísanie tabuľky } echo $celkem; // celková suma Premenná $soucet obsahuje vždy len jedno číslo. Každý ďalší beh cyklu ho prepíše na cenu ďalšieho tovaru a tak na konci cyklu tam bude vždy len cena posledného tovaru. |
||
majja01 Profil |
#10 · Zasláno: 22. 8. 2013, 12:27:10
xROAL:
aha díky moc už to funguje |
||
majja01 Profil |
Teď mám ještě podobný problém když pošlu
$row["name"];
přes GET na jinačí stránku.(poslání na email) tak to vypíše jenom poslední hodnotu a tady už nefunguje to co psal xROAL |
||
Taps Profil |
#12 · Zasláno: 22. 8. 2013, 20:21:57
majja01:
Podle mě by bylo ideální pracovat s polem a pak data poslat přes <? $_POST ?> |
||
majja01 Profil |
Taps:
jo já to tak chtěl mít já vždy první dávám GET abych zjistil jestli to vůbec funguje. a potom teprve dám POST „Podle mě by bylo ideální pracovat s polem“ zkoušel jsem odeslat pole ale vypsalo to jen array $pole = array("neco", "neco", "neco"); |
||
Taps Profil |
#14 · Zasláno: 22. 8. 2013, 20:52:04
majja01:
Pole musíš odeslat přes formulář. Bude opět lepší když uvidíme konkrétní kod |
||
majja01 Profil |
#15 · Zasláno: 22. 8. 2013, 20:59:53
Taps:
<? $pole = array("neco", "neco, "neco"); ?> <form method="post" action="zpracovani.php"> <input type="hidden" name="text" value="<? echo $pole ?>"> <input type="sumbit" value="odeslat"> |
||
Taps Profil |
#16 · Zasláno: 22. 8. 2013, 21:14:59
majja01:
To je špatný postup. Do formulářového pole musíš dostat $row['name'];
|
||
majja01 Profil |
#17 · Zasláno: 22. 8. 2013, 21:26:28
to jsem taky zkusil a nic to nezobrazí jenom když to dám do promené
$nazev : $nazev = $row["nazev"];
ale to pak vypíše jenom poslední hodnotu |
||
Taps Profil |
#18 · Zasláno: 22. 8. 2013, 21:31:29
majja01:
To bude podobný problém jako u předchozího kodu. Vlož jsem kod, kterým získáváš $row['nazev'];
|
||
majja01 Profil |
#19 · Zasláno: 22. 8. 2013, 21:35:35
if ($_SESSION["kosik"]) { $sql = mysql_query("SELECT id, nazev, price FROM zbozi WHERE id IN ('" . implode("', '", array_keys($_SESSION["kosik"])) . "')"); while($row = mysql_fetch_array($sql)) { echo $row["nazev"]; }} Každé dalo jinou promennou do text |
||
Taps Profil |
majja01:
<? if ($_SESSION["kosik"]) { $sql = mysql_query("SELECT id, nazev, price FROM zbozi WHERE id IN ('" . implode("', '", array_keys($_SESSION["kosik"])) . "')"); while($row = mysql_fetch_array($sql)) { $nazev[]=$row["nazev"]; }} ?> <form method="post" action="zpracovani.php"> <input type="hidden" name="text" value="<? echo implode(',',$nazev); ?>"> <input type="sumbit" value="odeslat"> |
||
majja01 Profil |
#21 · Zasláno: 22. 8. 2013, 21:41:55
Taps:
ahá IMPLODE o tom si musím něco přečíst už dvakrát mě to zachránilo :D mockrát díky |
||
Časová prodleva: 11 let
|
0