Autor Zpráva
Fox21
Profil *
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 *
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 *
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 *
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0