Jump to content
php.lv forumi

iepirkšanās grozs


laucinieks

Recommended Posts

  • Replies 40
  • Created
  • Last Reply

Top Posters In This Topic

Jā, ar selectu man nav problēmas, bet man ir ar -

1) tam pašam cart kodam -

while ($produkti = mysql_fetch_array(mysql_query($selects)))  {$produkti['nosaukums']$produkti['cena']<insert type"text" value="'.$daudzums.'" name="daudzums" size="4" />}

 

kā lai uztaisa, lai $daudzums būtu visi $_SESSION['ids'] vienādie id skaits. piemēram ir sešas mantas ar id 8, tad $daudzums ir 6, bet ja ir 2 mantas ar id 5 tad daudzums ir 2.

2) Cart koda beigās ir poga pasūtīt, pēc pogas pasūtīt uzspiešanas atveras forma, kurā jaizpilda vārds uzvārds, adrese, telefons bla bla. un uzspiežot submit - visas post detaļas no formas ieliekas attiecīgajā tabulā (adrese,telefons, vards..) (zinu kā izdarīt) un cart detaļas (nosaukums, id un daudzums (katrai precei) ieliekas datubāzē tabulā apraksts šādā formātā - "id - 8, nosaukums - tests, daudzums - 3; id - 5, nosaukums - test2, daudzums - 1; ...) (nezinu kā izdarīt).

Vienu no visiem produktiem varētu saglabāt sessijā, bet ar pārējiem, atkal jātaisa array's cik noprotu, bet kā man to izdarīt, manā gadījumā, ja visi dati iepriekš tika izvilkti no datubāzes, un izvadīti while ciklā. Cerams sapratāt, ko domāju.

Paldies jau iepriekš,

laucinieks.

Edited by laucinieks
Link to comment
Share on other sites

Izdomāju veidu, kā apiet to visu, bet šis arī nestrādā, kā nākas (vismaz strādā labāk (viena daļa visulaiku))

Tātad kods -

if ($_SESSION['items'] == 0)
{
$_SESSION['items']++;
$_SESSION['ids'][] = $_GET['id'];
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
else
{
for ($i = 0; $i < $_SESSION['items']; $i++)
{
if ($_SESSION['ids'][$i] == $_GET['id'])
{
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
if ($i == $_SESSION['items'])
$_SESSION['items']++;
$_SESSION['ids'][] = $_GET['id'];
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
}

 

Uzliku lai pārbauda ja mantas ir 0 tad pievienojas, ja mantas ir vairāk par 0 tad ar for ciklu iziet visām mantām cauri un pārbauda vai jau nav tāds id, ja ir tad pārmet atpakaļ uz iepriekšējo lapu, ja nav tad pievieno. Bet, ja noņemu ifu, tad strādā, ja ir vairāk par 0 mantām (pievienojas), bet nestrādā, ja ir 0 mantas (nepievienojas), ja uzlieku ifu tad strādā, ja ir 0 mantas (pievienojas) un ja ir vairāk par 0 mantām tad (nepievienojas). Varbūt Jūs pamanāt kļūdu.

Edited by laucinieks
Link to comment
Share on other sites

Glabā šādi, kur masīva atslēga ir produkta id, bet vērtība ir skaits:

 

$_SESSION['products'][$product_id] = $product_count;

 

Lai iegūtu visus produktu ID:

print_r(array_keys($_SESSION['products']));

 

Lai pieskaitītu produktam vēl vienu vienību:

$_SESSION['products'][$product_id] += 1;

 

Lai izdrukātu:

foreach($_SESSION['products'] as $product_id => $product_count){

echo "Produkts: $product_id (skaits: $product_count)";

}

 

Tik vienkārši, ne?

 

Protams, neaizmirsti ieslēgt VISU kļūdu ziņojumu rādīšanu, kā arī novērst visas "NOTICE: Undefindex index.. " kļūdas.

 

Koda augšā:

 

ini_set("display_errors", true);

error_reporting(E_ALL);

Edited by briedis
Link to comment
Share on other sites

briedi, vēl ir 2 jautājumi -

1) kāpēc man vajag lietot $_SESSION['products'][$product_id] = $product_count; , ja es pievienoju tikai vienu id, t.i. $_GET['id'] ?

2)

Lai pieskaitītu produktam vēl vienu vienību:

$_SESSION['products'][$product_id] += 1;

Vai tad man nevajag norādīt kaut kādīgi, kuram produktam pieskaitīt vēl vienu vienību?

laucinieks.

Link to comment
Share on other sites

1.

Uzstādam šim produktam 1 vienību

$_SESSION['products'][$_GET['product_id'] = 1;

 

Palielinam vienības kādam produktam +1:

$_SESSION['products'][$_GET['product_id']++;

 

2.

Bet tu jau norādi KURAM ID tiks palielināta vērtība:

$_SESSION['products'][$product_id]++;

 

 

Dzēšam produktu no masīva:

unset($_SESSION['products'][$product_id]);

Edited by briedis
Link to comment
Share on other sites

Tomēr vēl pie pēdējās lietas esmu aizķēries -

Tātad, pēc pogas pasūtīt uzspiešanas, visi dati, kas uz ekrāna tiek saglabāti sesijā -

$_SESSION['pasutijums'.$id] = 'ID - '.$produkti['id'].', Nosaukums - '.$produkti['nosaukums'].', Cena (gabalā) - '.$produkti['cena'].' LS, Daudzums - '.$_POST['daudzums'].'<br />';

Kur pēc tam pārbaudīju vai strādā, šādi -

for ($c = 1; $c < count($_SESSION['products']) + 1; $c++)
	{
	echo $_SESSION['pasutijums'.$c];
	}

Viss strādā, bet tagad man vajag uzzināt, kā var to for ciklu (visu, ko for cikls izvada) nodefinēt piemēram ar $apraksts, vai arī, kā var to for ciklu ielikt datubāzē ar INSERT INTO bla bla bla...?

Būšu ļoti, ļoti pateicīgs, ja palīdzēsiet, vēl pēdējā lietā, un tad likšu Jums svētu mieru uz kādu laiciņu :)

Paldies jau iepriekš,

laucinieks.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...