Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Koszyk na zakupu - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Koszyk na zakupu (/thread-koszyk-na-zakupu)



Koszyk na zakupu - zebrowski1973 - 11-01-2011

Witam mam problem z koszykiem na zakupy czy koś mi powie jakiego dobrego skryptu koszyka użyć aby współpracował z stroną www.wyjatkowe-okazje.pl/new . Wcześniej używałem takiego kodu
Kod:
class Koszyk {
var $tab_koszyka = array(array()) ;

function Dodaj_do_tablicy($koszyk){ $x=0;
  foreach($koszyk as $info => $ilosc)
  { $rzad = pobierz_dane_produktu($info) ;
    $this->tab_koszyka[$x][0] = $rzad['lp'] ;    $this->tab_koszyka[$x][1] = $rzad['kat'] ;
    $this->tab_koszyka[$x][2] = $rzad['nazwa'] ; $this->tab_koszyka[$x][3] = $rzad['jpg'] ;
    $this->tab_koszyka[$x][4] = $rzad['cena'] ;  $this->tab_koszyka[$x][5] = $ilosc ;
    $this->tab_koszyka[$x][6] = $this->oblicz_sume($rzad['cena'],$ilosc) ;  
    $x++ ; } return $x; }
  
function Info_Tabela_koszyka()                       { ?>
  <table width='100%' cellpadding='5'><tr><th width='5%'>Lp</th><th width='15%'>Obrazek</th><th width='15%'>Nazwa Produktu</th>
  <th width='15%'>Cena</th><th width='15%'>Ilość</th><th width='15%'>Suma</th></tr></table>  <? }
  
function oblicz_sume($cena,$ilosc) { $suma = $cena * $ilosc ;   return $suma ; }

function oblicz_wartosc($ile) { $wartosc=0;
   for($x=0; $x < $ile; $x++) { $wartosc+= $this->tab_koszyka[$x][6] ; } return $wartosc; }
  
function suma_upust($wartosc) { $upust = 0;
  for($x=0; $x<$wartosc; $x++) { if($x==10 || $x==15 || $x==25 || $x==60) $upust++ ;}  
   $suma = $wartosc - (($wartosc * $upust)/100) ; return $suma ; }
      
function pokaz_upust($wartosc) { $upust = 0;
  for($x=0; $x<$wartosc; $x++) { if($x==10 || $x==15 || $x==25 || $x==60) $upust++ ;} return $upust; }
  
function wyswietl_koszyk($ile)      {
   for($x=0; $x<$ile; $x++) { $info = $this->tab_koszyka[$x][0] ; ?>
   <table width='100%' cellpadding='5'><tr><th width='5%'>
   <? echo $x; echo "<br><a href='?id=koszyk&page=usun&nr=$x' class='link3'>Usuń</a>" ;?></th>
   <th width='15%'><img src="obrazki/<? echo $this->tab_koszyka[$x][3]; ?>" width="60" height="60"></th>
   <th width='15%'><? echo $this->tab_koszyka[$x][2]; ?></th>
   <th width='15%'><? echo number_format($this->tab_koszyka[$x][4],2,',',' '); ?> zł</th>
   <th width='15%'><? echo $this->tab_koszyka[$x][5];
   echo "<BR><a href='?id=koszyk&page=edytuj&nr=$x' class='link3'>Zmień</a>"?></th>
   <th width='15%'><? echo number_format($this->tab_koszyka[$x][6],2,',',' '); ?> zł</th>
   </tr></table>  <? }}
  
  function suma_koszyka($ile) {
   $suma=$this->suma_upust($this->oblicz_wartosc($ile)) ; ?>
   <table width='100%' cellpadding='5'><tr><th width='64%'>Suma</th>
   <th width="18%">Upust przyznany : <? echo $upust=$this->pokaz_upust($this->oblicz_wartosc($ile)); ?> %</th>
   <th width='18%'><font size="6"><? echo number_format($suma,2,',',' ')  ; ?> zł</font></th>
   </tr></table> <? }    
  
function edycja_ilosci_produktu_koszyka($x) { ?> <table width="80%"><tr style="background: #f3f3f3;">
<td align="center"><B>Formularz zmiany ilości</B></td>
   </tr>
  <tr><td><form method="post" action="<? echo '?id=koszyk&page=zapis&nr='.$x ; ?>">
   <table width="100%" border="0" cellpadding="5">
   <tr><th><img src="obrazki/<? echo $this->tab_koszyka[$x][3]?>" width="60" height="60" /></th>
   <th>Nazwa :<BR /><? echo $this->tab_koszyka[$x][2] ; ?></th>
   <th><label>Ilość : <input type="text" name="ile" id="ile"
   value="<? echo $this->tab_koszyka[$x][5];?>"></label></th>
   <th><input type="submit" value="Zatwierdz" class="button"></th><th>Cena : <br />
     <? echo number_format($this->tab_koszyka[$x][4],2,',',' '); ?>  zł</th>
   </tr></table></form></td></tr></table>  <? }
}  
?>    

<?
ob_start();
session_start() ;

@ $nowy = $HTTP_GET_VARS['nowy'];
function poprawnosc_liczby($liczba) {
$test=preg_match('/^([A-Z]|Ć|Ł|Ń|Ś|ű|Ż){1}([A-Za-z]|Ę|Ó|Ł|Ś|Ą|Ż|ű|Ć|Ń|ę|ó|ł|ś|ą|ż|ź|ć|ń)+$/',$liczba);
if($liczba <= 0 || $liczba == ' ' || $test === TRUE) return FALSE ;
else return TRUE;                  }  
  
if($nowy)
  { if(poprawnosc_liczby($_POST['ile'])===FALSE)
    { $url ='location:index.php?id=produkt&info='.$nowy; header($url);   exit(); }
    // wybrany nowy produkt
    if(!isset($HTTP_SESSION_VARS['koszyk']))
    { $HTTP_SESSION_VARS['koszyk'] = array();  }
    if(isset($HTTP_SESSION_VARS['koszyk'][$nowy]))
     { $HTTP_SESSION_VARS['koszyk'][$nowy] += $_POST['ile'];
       header('location:index.php?id=koszyk') ; exit() ;  }  
    else
     { $HTTP_SESSION_VARS['koszyk'][$nowy] = $_POST['ile'];  
       header('location:index.php?id=koszyk') ; exit() ; }
   unset($_POST['ile']) ; }
  
if($HTTP_SESSION_VARS['koszyk'] && array_count_values($HTTP_SESSION_VARS['koszyk'])) {
  $_SESSION['ile']=$kosz->Dodaj_do_tablicy($HTTP_SESSION_VARS['koszyk']) ;
  switch($page) {
   default:  
      $kosz->Info_Tabela_koszyka() ; echo '<hr>' ; $kosz->wyswietl_koszyk($_SESSION['ile']) ;
    $kosz->suma_koszyka($_SESSION['ile']); echo "<br><br>"; Url('?id=koszyk&page=kasa','Do Kasy');    
   break;
   case 'edytuj':
    $kosz->edycja_ilosci_produktu_koszyka($nr) ;
   break ;    
   case 'zapis':
    $produkt = $kosz->tab_koszyka[$nr][0] ; $HTTP_SESSION_VARS['koszyk'][$produkt]=$_POST['ile'] ; unset($_POST['ile']) ;
     header('location:index.php?id=koszyk') ; exit() ;
   break;
   case 'kasa':
    from_dane() ;
   break;    
   case 'usun':
     $produkt = $kosz->tab_koszyka[$nr][0] ; unset($HTTP_SESSION_VARS['koszyk'][$produkt]) ;
     header('location:index.php?id=koszyk'); exit();
   break;
  }} else {
echo '<p>Koszyk jest pusty. Zapraszam do obejrzenia produktów w Kategoriach lub zapraszam na strone główną.</p>' ; echo '<hr />'; }

ob_end_flush();              
?>
Dana klasa napisana w php musi współpracować bazą danych.  Ne wiem czy użyć sesji czy ciasteczek.
Jedynie musi zmieniać ilość w bazie danych. Resztę danych wysłać na @ kupującego wraz z ilością kupionych produktów
// BBCode + ortografia, czytaj to co napisałeś zanim zapostujesz.