laucinieks Posted August 22, 2011 Author Report Share Posted August 22, 2011 Saprotu, ka viņš visas array vērtības ieliek string'ā un tad atdala tās. Vai arī es kaut ko nepareizi esmu sapratis, bet, kur būtība, tam visam? Quote Link to comment Share on other sites More sharing options...
briedis Posted August 22, 2011 Report Share Posted August 22, 2011 (edited) $str = "1,2,3,4,5,6"; $arr = explode(",", $str); print_r($arr); $str2 = implode(",", $arr); echo $str2; Dzīva demonstrācija: http://codepad.viper-7.com/AqdSR0 Edited August 22, 2011 by briedis Quote Link to comment Share on other sites More sharing options...
daGrevis Posted August 22, 2011 Report Share Posted August 22, 2011 Būtība tāda, ka tas nepieciešams kverijam. ... IN 1, 2, 3 Quote Link to comment Share on other sites More sharing options...
laucinieks Posted August 22, 2011 Author Report Share Posted August 22, 2011 Nu, jā to ko briedis deva saprotu, bet kā tad, ir manā gadījumā par tiem 2 jautājumiem, saprotu, ka ar implode to nedara? Quote Link to comment Share on other sites More sharing options...
briedis Posted August 22, 2011 Report Share Posted August 22, 2011 $query = "SELECT * FROM produkti WHERE id IN (".implode(",", array(1,2,3,4,5,6)).")"; http://codepad.viper-7.com/cJQezT Quote Link to comment Share on other sites More sharing options...
laucinieks Posted August 22, 2011 Author Report Share Posted August 22, 2011 (edited) 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 August 22, 2011 by laucinieks Quote Link to comment Share on other sites More sharing options...
viena tante Posted August 22, 2011 Report Share Posted August 22, 2011 Mysql count Quote Link to comment Share on other sites More sharing options...
laucinieks Posted August 23, 2011 Author Report Share Posted August 23, 2011 (edited) 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 August 23, 2011 by laucinieks Quote Link to comment Share on other sites More sharing options...
briedis Posted August 23, 2011 Report Share Posted August 23, 2011 (edited) 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 August 23, 2011 by briedis Quote Link to comment Share on other sites More sharing options...
laucinieks Posted August 23, 2011 Author Report Share Posted August 23, 2011 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. Quote Link to comment Share on other sites More sharing options...
briedis Posted August 23, 2011 Report Share Posted August 23, 2011 (edited) 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 August 23, 2011 by briedis Quote Link to comment Share on other sites More sharing options...
laucinieks Posted August 23, 2011 Author Report Share Posted August 23, 2011 Ā, nu skaidrs, paldies :). Bet, tagad cik noprotu man vairs nederēs šis selects - $selekts = "SELECT * FROM produkti WHERE id IN (".implode(', ', $_SESSION['products']).")"; vai arī kaut ko atkal jaucu? Laucinieks Quote Link to comment Share on other sites More sharing options...
mixis Posted August 23, 2011 Report Share Posted August 23, 2011 (edited) gadījumā nevajag vienkārši: $daudzums = array_count_values($_SESSION['ids']); Edited August 23, 2011 by mixis Quote Link to comment Share on other sites More sharing options...
laucinieks Posted August 23, 2011 Author Report Share Posted August 23, 2011 Vēlreiz LIELS Paldies Briedi! Par to Selectu, sapratu pats. Quote Link to comment Share on other sites More sharing options...
laucinieks Posted August 23, 2011 Author Report Share Posted August 23, 2011 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.