Poslao: 05 Nov 2010 15:03
|
offline
- |_MeD_|
- Zaslužni građanin
- Pridružio: 02 Okt 2005
- Poruke: 546
|
samo ovaj deo mo nije jasan
if ( !isset ($_SESSION['cart']))
{
$_SESSION['cart'] = array();
$_SESSION['cart'] = 0;
$_SESSION['total_price'] = '0.00';
}
Zasto prvo setujes array a posle 0? Nesto je tu visak.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 05 Nov 2010 15:09
|
offline
- zend
- Počasni građanin
- Pridružio: 22 Okt 2009
- Poruke: 900
- Gde živiš: Pancevo
|
Pazi nema veze da li cu prvo da setujem 0 pa posle array. Izvali kod mene je rad ako nemas stavke u korpi onda ona ni ne postoji zato je 0. Nema je. Cim dodas stavku korpa se pravi tim kodom sto si citirao. Da li me razumes sta hocu da kazem. pocetna vrednost je 0
|
|
|
|
Poslao: 06 Nov 2010 01:04
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
zend ::Pazi ja kod mene pri unosenju podataka o porudzbinama kupaca koristim transakcije, postupak je jednostavan i siguran koristim masinu baze
InnoDB
Imas tri mogucnosti belezenja stavki koje je korisnik izabrao prilikom kupovine.
1. Da koristis promenjivu sesije
2. Da upisujes u bazu
3. Da koristis cookies
Ako izaberes da koristis sesije za cuvanje izabranih proizvoda pri prelasku s jedne stranice na drugu, pojednostavljuje kod jer nije potrebno da se ti podaci neprekidno ucitavaju iz baze podataka.
Pazi osim toga, imas brdo korisnika koji samo pretrazuju Web lokaciju, pa se na kraju predomisle i ne kupe nista, nece puniti bazu podataka smecem.
Zato je najbolje da cuvas u jednoj promenljivoj sesije ili cak sto vise u grupi takvih promenljivih u kojima ces da cuvas podatke o proizvodima koje je korisnik izabrao.
Kada korisnik zavrsi kupovinu i plati proizvod koji je izabrao, podatke o tome upisujes u bazu podataka kao evidenciju podataka da je transakcija obavljena.
Te podatke koje upises mozes da upotrebis i za to da bi u nekom uglu stranice prikazao tekuce stanje korpe. Tako ce korisnik u svakom trenutku znati koliko ce potrositi.
Evo ti neki primeri kod mene kako je.
Ovo koristim da prikazem korpu.
<?php
include ('sc_fns.php');
// Posto za rad korpe koristim sesiju onda je i zapocinjem
session_start();
@ $new = $_GET['new'];
if($new)
{
//Nova stavka je izabrana
if (!isset($_SESSION['cart']))
{
$_SESSION['cart'] = array();
$_SESSION['items'] = 0;
$_SESSION['total_price'] ='0.00';
}
if (isset($_SESSION['cart'][$new]))
$_SESSION['cart'][$new]++;
else
$_SESSION['cart'][$new] = 1;
$_SESSION['total_price'] = calculate_price($_SESSION['cart']);
$_SESSION['items'] = calculate_items($_SESSION['cart']);
}
if (isset($_POST['save']))
{
foreach ($_SESSION['cart'] as $isbn => $qty)
{
if ($_POST[$isbn]=='0')
unset($_SESSION['cart'][$isbn]);
else
$_SESSION['cart'][$isbn] = $_POST[$isbn];
}
$_SESSION['total_price'] = calculate_price($_SESSION['cart']);
$_SESSION['items'] = calculate_items($_SESSION['cart']);
}
do_html_header('Your shopping cart');
if($_SESSION['cart']&&array_count_values($_SESSION['cart']))
display_cart($_SESSION['cart']);
else
{
echo '<p>There are no items in your cart</p>';
echo '<hr />';
}
$target = 'index.php';
// Ako smo dodali stavku u korpu, nastavljamo kupovinu
// u toj kategoriji
if($new)
{
$details = get_book_details($new);
if($details['catid'])
$target = 'show_cat.php?catid='.$details['catid'];
}
display_button($target, 'continue-shopping', 'Continue Shopping');
// Koristim ovaj kod ako je SSL aktivan
//
// $path = $_SERVER['PHP_SELF'];
// $server = $_SERVER['SERVER_NAME'];
// $path = str_replace('show_cart.php', '', $path);
// display_button('https://'.$server.$path.'checkout.php',
// 'go-to-checkout', 'Go To Checkout');
// Ako SSL nije aktivan koristim ovaj kod
display_button('checkout.php', 'go-to-checkout', 'Go To Checkout');
do_html_footer();
?>
E sada da ti pojasnim ova scripta se sastoji od tri glavna dela:
1. Prikazivanje sadrzaja korpe
2. Dodavanje sadrzaja u korpu
3. Snimanje izmena u korpu
Bez obzira na koju je stranicu neki korisnik dosao uvek mu mozes prikazati sadrzaj korpe. Ako na primer taj korisnik pritisne dugme POGLEDAJ KORPU
Prikazes mu sadrzaje gore sam u kodu to naveo ali ajde da odvojim taj deo.
if ($_SESSION['cart'] &&
array_count_values ($_SESSION['cart'] ))
display_cart ($_SESSION['cart'] );
else
{
echo 'Korpa je prazna';
}
Da dodas stavku u korpu
if ( !isset ($_SESSION['cart']))
{
$_SESSION['cart'] = array();
$_SESSION['cart'] = 0;
$_SESSION['total_price'] = '0.00';
}
Korpa je u pocetku prazna.
Drugo kada znas da korpa postoji mozes da dodas izabrani proizvod u nju.
if (isset($_SESSION['cart'] [$new]))
$_SESSION['cart'] [$new] ++ ;
else
$_SESSION['cart'] [$nw] = 1;
Isitas da li odredjeni proizvod vec postoji u korpi. Ako je tako povecas za jedan broj primeraka tog proizvoda. Ako nije dodaje se novi proizvod u korpu.
I naravno na kraju treba da izracunas ukupan iznos i broj proizvoda
$_SESSION['total_price']= calculate_price ($_SESSION['cart']);
$_SESSION['items'] = calculate_items ($_SESSION['cart']);
Ux ja se raspisao... DOsta ti je izvali sada sustinu svega tako je kod mene po tom fazonu radi i nemam problema. Pogledaj vidi probaj da izvuces maximum iz sesija jer su cudo. Uradi na svoj nacin ja sam ti cisto objasnio kako to funkcionise da ti ne pisem celu moju korpu sada... Nadam se da sam ti pomogao.
Pozdrav
Hvala ti na detaljnom uputstvu, pokusacu da ga primenim na svom projektu. Da li neko zna kako da resim problem dugmeta i pokretanja upita za brisanje stavke u bazi?
|
|
|
|
|
Poslao: 06 Nov 2010 01:45
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
Ono html dugme button ili input type="button" ili submit, ne znam koje ide. Evo celog koda koji se odnosi na pravljenje table u korpi:
<?php require_once 'unos.php';?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Pretraga mobilnih telefona - korpa</title>
</head>
<body>
<h1> Korpa </h1>
<div>
<?php
include 'konekcija.php';
$ip = $_SERVER['REMOTE_ADDR'];
$tabela = mysql_query("SELECT proizvodjac, model FROM korpa WHERE ip_adresa = '".$ip."'") or die(mysql_error());
echo '<table border=1>';
echo '<tr>';
echo '<th>Proizvodjac</th>';
echo '<th>Model</th>';
echo '</tr>';
$brojredova = mysql_numrows($tabela);
for($i=0; $i<$brojredova; $i++){
while($red1 = mysql_fetch_assoc($tabela)){
echo '<tr>';
$nazivproizvodjaca = $red1['proizvodjac'];
$nazivmodela = $red1['model'];
echo '<td>'.$nazivproizvodjaca.'</td>';
echo '<td>'.$nazivmodela.'</td>';
echo '<td><input type="submit" name="obrisi" value="Obrisi" /></td>';
if(isset($_POST['obrisi'])){
$brisanje = mysql_query("DELETE from korpa where ip_adresa = '".$ip."', proizvodjac = '".$nazivproizvodjaca."', model = '".$nazivmodela."'");
}
if($i == $brojredova){
echo '</tr>\n';
echo '</table>';
}
}
}
mysql_close($con);
?>
<a href="index.php">Nastavi sa kupovinom</a>
</div>
</body>
</html>
|
|
|
|
Poslao: 06 Nov 2010 12:15
|
offline
- zend
- Počasni građanin
- Pridružio: 22 Okt 2009
- Poruke: 900
- Gde živiš: Pancevo
|
Pa to ti je najprostije vatas artiklu po ID-u i brises je. SUBMIT mozes neki JS da primenis tu.
|
|
|
|
Poslao: 06 Nov 2010 17:54
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
Aha i u okviru js, pozovem upit? Ja se izvinjavam ako su pitanja malo glupa, ali od skoro sam poceo da se intereaujem za php i uzeo sam projekat da pravim neku web aplikaciju.
|
|
|
|
Poslao: 07 Nov 2010 11:56
|
offline
- zend
- Počasni građanin
- Pridružio: 22 Okt 2009
- Poruke: 900
- Gde živiš: Pancevo
|
ma za js cisto da te priupita ono (Da li ste sigurni da li zelite da obrisete ovu stavku OK, CANSEL) Pazi ovako ti pritiskom na dugme brises kolonu iz baze koja je selektovana koji si ID prosledio....
Sada je tvoje da li ces pored svakog proizvoda da imas checkbox ili delite button to je tovoje...
if (isset($_POST['id']))
{
$id=$_POST['id'];
$db="newdb";
$link = mysql_connect("localhost", "root", "");
if (! $link)
die("Couldn't connect to MySQL");
mysql_select_db($db , $link)
or die("Couldn't open $db: ".mysql_error());
mysql_query("DELETE FROM BLABLABLA WHERE id=$id");
mysql_close($link);
}
Ovde si uvatio id (WHERE id=$id) iz promenljive $id =$_POST ['id'] i prosledjujes tu vrednost upitu WHERE. Pazi ti tamo moras da izlistas i ID SELECT da bi imao u promenljivoj koji ID mu pripada.
|
|
|
|
Poslao: 08 Nov 2010 17:09
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
Tako sam i uradio, u svakoj koloni imam dugme obrisi. Nisam imao vremena ovih dana, videcu da to resim sa js. Pokusacu da nadjem neki slican kod i da ga primenim, posto nisam bas nesto strucan sa js.
|
|
|
|