Autor | Zpráva | ||
---|---|---|---|
Fox21 Profil * |
#1 · Zasláno: 17. 4. 2023, 14:06:20
Ahoj, mám řešený košík přes session kde mam uložené ID produktu a počet kusů a z dabatáze v košíku načítám data jako cena a název produktu. Potřeboval bych nějak udělat celkový součet košíku, ale vůbec nevím jak na to. Kdyby byly počty kusů uloženy v DB, tak bych v příkazu použil příkaz SUM, ale takhle mě nic nenapadá. Měl by někdo nějaké řešení?
<?php if ($_SESSION["kosik"]) { $tabulka_A='<table > <thead align="center"> <tr style="line-height:30px; background-color:#00406D;"> <th class="pismo_tabulka" width="50">ID</th> <th class="pismo_tabulka" width="350">Název zboží</th> <th class="pismo_tabulka" width="50">Skladem</th> <th class="pismo_tabulka" width="50">Počet ks</th> <th class="pismo_tabulka" width="50">Cena za kus</th> <th class="pismo_tabulka" width="70">Cena celkem</th> <th class="pismo_tabulka" width="50">Odebrat z košíku</th> </tr></thead>'; $result = mysqli_query($con, "SELECT * FROM zbozi WHERE id IN ('" . implode("', '", array_keys($_SESSION["kosik"])) . "')") or die (mysqli_error($con)); while ($row = mysqli_fetch_array($result)) { $pocet_ks=$_SESSION["kosik"][$row["id"]]; $cena_za_ks=$row['cena_prodej_dph']; $cena_total=$pocet_ks*$cena_za_ks; $tabulka_A.='<tr style="line-height:30px;" class="radek'.($citac%2).'"> <td style="display: none;" class="pismo_tabulka" width="100">'.++$citac.'</td> <td class="pismo_tabulka" width="50">'.$row['id'].' </td> <td class="pismo_tabulka" width="350">'.$row['nazev'].'</td> <td class="pismo_tabulka" width="50">skladem</td> <td class="pismo_tabulka" width="50"> <form action="index.php?page=eshop/zpracuj_vlozit_kosik" method="post"> <input type="hidden" name="sent"> <input type="hidden" name="id" value="'.$row['id'].'"> <input style="width:30px; " type="text" name="pocet" value="'.$pocet_ks.'"> <input type="image" src="index_soubory/obrazky/save.png" style="width:24px; height:24px; position:relative; top:5px;" value="Uložit"></form></td> <td class="pismo_tabulka" width="50">'.$row['cena_prodej_dph'].' </td> <td class="pismo_tabulka" width="70"> '.$cena_total.',- Kč </td> <td class="pismo_tabulka" width="50"> <form action="index.php?page=zpracuj_z_kosiku" method="post"><input type="hidden" name="sent"><input type="hidden" name="smazat" value="'.$row['id'].'"> <input type="image" style="position:relative; top:4px;" src="index_soubory/obrazky/delete.png" value="SMAZAT"></form> </td> </tr>'; } $tabulka_A.='</table>'; mysqli_free_result($result); } ?> <table align="center"> <tr><td><?php echo $tabulka_A; ?></td></tr> <tr><td> </td></tr> </table><br> |
||
anonym_ Profil * |
#2 · Zasláno: 17. 4. 2023, 14:15:52
Fox21:
Počty kusů jednotlivých produktů jsou v `$pocet_ks`. Na začátku si zadefinuj `$celkem_ks = 0`, při každém průchodu cyklem k tomu přidej `$pocet_ks`. Na konci budeš mít celkový počet kusů všeho. |
||
Keeehi Profil |
Před cyklus
$foo = 0;
uvnitř $foo += $cena_total;
No a po konci cyklu máš v proměnné $foo součet cen všech položek v košíku. Myslím si, že když se musíš na takové věci ptát, není úplně nejlepší nápad si tvořit vlastní eshop. Postav to na něčemhotovém. |
||
anonym_ Profil * |
#4 · Zasláno: 17. 4. 2023, 14:16:59
Jo pardon, ty se ptáš na celkový součet peněz, že? Tam to bude podobné, jen budeš přičítat
$cena_total .
|
||
I don't like AI Profil * |
#5 · Zasláno: 17. 4. 2023, 20:10:53 · Upravil/a: Moderátor (editace znemožněna) 18. 4. 2023, 07:14:22
Fox21:
Chápem, že s PHP asi viac-menej len začínaš. Ak sa mu venuješ dlhšie, tak určite nie naplno. K podstatným veciam sa už vyjadrili kolegovia vyššie, ja doplním ešte zopár typov. Takéto miešanie PHP a HTML kódu nie je veľmi šťastné, pretože to kód zneprehľadňuje. Kľúčové slovo na ďalšie štúdium je šablónovacie systémy. SELECT * FROM zbozi WHERE id IN ('" . implode("', '", array_keys($_SESSION["kosik"])) . "') A teraz si do košíka ulož Mc Donald's Big Mac . Kľúčové slovo SQL Injection.
<td class="pismo_tabulka" width="350">'.$row['nazev'].'</td> - bez ošetrenia nie. Kľúčové slovo XSS.
|
||
Časová prodleva: 2 roky
|
0