Cibiņš Posted December 27, 2012 Report Share Posted December 27, 2012 īsti nedalec kā padot sesijā esošos datus uz MySQL. Domāju to tā - ja man ir sesija $_SESSION['skaitluvirkne'] kurā ir skaitļi jeb produktu identifikatori 18, 24, 32, 5, 9, 4 vismaz tā man atgriež print_r($_SESSSION); Kā lai panāk lai šie dati nevis vienā čupā tiek sagrūsti tā kā ar kāju pa di*su tabulā :D bet gan lai tiek smuki vispirms sadalīti un insertoti katrā rowā kā jauns ieraksts. Pašlaik čakarējos ar $identifikators = array($_SESSION['skaitluvirkne']); foreach ($identifikators as $key => $val) { echo 'identifikators['.$key.']'.$val.'<br />'; } Ar šo kodu tā jau sanāktu smuki insertiņi tikai neprotu izdzīt datus no masīva, kas ir kā 18, 24, 32, 5, 9, 4, respektīvi šajā esošos datus kas sadalīti ar komatu :( $identifikators = array($_SESSION['skaitluvirkne']); Skatījos ar explode() funkciju bet nekā :( :( :( Quote Link to comment Share on other sites More sharing options...
Cibiņš Posted December 27, 2012 Author Report Share Posted December 27, 2012 Aa neko atkal kārtējo reizi kā sāku bļaustīties te tā pats arī savu problēmu atrisinu :D http://www.tizag.com/phpT/php-string-explode.php as kas bij vajadzīgs :D Quote Link to comment Share on other sites More sharing options...
Cibiņš Posted December 27, 2012 Author Report Share Posted December 27, 2012 P.S Šitāds tas kods ko man vaidzēja! $idntfctr = $_SESSION['skaitluvirkne']; $explidntfctr = explode(",", $idntfctr ); foreach ($explidntfctr as $key => $val) { mysql_query("INSERT INTO tabula (id) VALUES ('$val');") or die(mysql_error()); //echo 'identifikators['.$key.'], vērtība '.$val.'<br />'; } Quote Link to comment Share on other sites More sharing options...
ezis Posted December 27, 2012 Report Share Posted December 27, 2012 Cik gara tā virkne var būt? mysql_query ciklā not cool Quote Link to comment Share on other sites More sharing options...
marrtins Posted December 27, 2012 Report Share Posted December 27, 2012 mysql_query ciklā not cool Šaubos, vai tur jebkad būs tādi apjomi, lai par to iespringtu. Quote Link to comment Share on other sites More sharing options...
aaxc Posted December 28, 2012 Report Share Posted December 28, 2012 Lai nebūtu jāveido n-tie cikli ar sql pieprasījumiem, pamēģini labāk šādā veidā: $idntfctr = $_SESSION['skaitluvirkne']; $explidntfctr = explode( ",", $idntfctr ); if ( sizeof( $explidntfctr ) ) { $query = "INSERT INTO tabula (id) VALUES "; foreach ( $explidntfctr as $key => $val ) { $query .= "('".(int)$val."'),"; //echo 'identifikators['.$key.'], vērtība '.$val.'<br />'; } mysql_query( trim( $query, ',' ) ) or die( mysql_error() ); } Quote Link to comment Share on other sites More sharing options...
v3rb0 Posted December 28, 2012 Report Share Posted December 28, 2012 tad vispār bez ciklu keywordiem jāraksta- https://gist.github.com/4e7839d0eeb9183ef59c un ja virknē būs kaut kas, kas nekastojas uz int, sainsertos 0, un visticamāk dublikātus nevajag, un trim($query, ','); nav smuki, un vispār, priecīgus svētkus! Quote Link to comment Share on other sites More sharing options...
Cibiņš Posted December 28, 2012 Author Report Share Posted December 28, 2012 (edited) Vispār tagad prasās saskaitīt cik reizes atkārtojas skaitlis virknē, tik tagad gan nejēdzu kā izskaitīt katru atsevišķi, respektīvi izkasa katru vērtību no sesijas un saskaita katru atsevišķi, cik katrs ir, piem ja $_SESSION['skaitluvirkne'];satur šādu virkni18,18,15,14,19,18,14,14,18,15tad tiek atspoguļots kāvirknes skaitlis 18 atkārtojas 4 reizes;virknes skaitlis 15 atkārtojas 2 reizes;virknes skaitlis 14 atkārtojas 3 reizes;virknes skaitlis 19 atkārtojas 1 reizes;no šī koda protams<p>$idntfctr = $_SESSION['skaitluvirkne'];$explidntfctr = explode(",", $idntfctr );foreach ($explidntfctr as $key => $val) {mysql_query("INSERT INTO tabula (id, skaits) VALUES ('$val','$skaits');") or die(mysql_error()); //$skaits nemaku dabut :(//echo 'identifikators['.$key.'], vērtība '.$val.'<br />'; } P.S. Šis pats kods ir labs jo miljons ierakstu netiks glabāts sesijā, tapēc par to tiešām nevajag iespringt. Edited December 28, 2012 by Cibiņš Quote Link to comment Share on other sites More sharing options...
daGrevis Posted December 28, 2012 Report Share Posted December 28, 2012 Es nesaprotu kā var nesapaprast. Tātad no tā stringa, kurā vērtības ir atdalītas ar komatu, dabūjam listu, tfu, araju. `[1, 2, 2, 3, 4, 5, 1]` Izveidojam diktu, tfu, araju, kurš noderēs vēlāk. Sanāks? Tad ciklā tam joņojam cauri. Māki? Katrā iterācijā (jebšu jonī :D) skatamies, vai tāds elements ir iekš pirms tam izveidotā mainīgā. Ja nav, ieliekam un uzsetojam vērtību kā 1. Ja ir, palielinam pirms tam uzsetto vērtību par viens. Cikla beigās sanāks šādi: `{1: 2, 2: 2, 3: 1, 4: 1, 5: 1}` Kas apzīmē, ka elements «1» ir atkārtojies divreiz utt.. Tikko mēģināju to uzrakstīt PHP, bet sintakse vairs nenāk prātā... un ja es atvēršu doķus — iespējams, ka murgošu. :D Tāpēc re kur tev ir Python piemērs: http://sprunge.us/dNTj?py . Quote Link to comment Share on other sites More sharing options...
Cibiņš Posted December 28, 2012 Author Report Share Posted December 28, 2012 Atradu šādu http://www.developphp.com/view_lesson.php?v=456 bet kādēļ aizvietojot $myArray = array("Kyle","Ben","Sue","Phil","Ben","Mary","Sue","Ben"); ar šo $myArray = array($_SESSION['skaitluvirkne']); tiek atgriezts kautkāds tāds šmurgs virknes skaitlis1,1,1,1,1,1,1,1,1,1,3,3,3,3,3 atkārtojas1reizes Nav iespējams no tās sesijas izvilkt datus tā lai tie būtu kā "Kyle","Ben","Sue","Phil","Ben","Mary","Sue","Ben" ???? Domāju ka tā būs vienkāršāk, pitonu neesmu zubrījis tādēļ nav sajēgas ko un kā un kur mainīt. Quote Link to comment Share on other sites More sharing options...
v3rb0 Posted December 28, 2012 Report Share Posted December 28, 2012 win, php izrādās ir gatava f-ja tam :D $myArray = explode(',', $_SESSION['skaitluvirkne']); Quote Link to comment Share on other sites More sharing options...
Cibiņš Posted December 28, 2012 Author Report Share Posted December 28, 2012 LOL..tik vienkārši..neienāca prātā to explode ielikt tur..sākumā kko čakarējos ar to explode bet nesanāca! LIELS paldies, tagad viss kā vajag! $identifikators=explode(',', $_SESSION['skaitluvirkne']); $chgataxa = array_count_values($identifikators); foreach($chgataxa as $key => $val){ echo 'virknes skaitlis '.$key.' atkārtojas '.$val.' reizes <br />'; //echo $key.' - <strong>'.$val.'</strong> <br />'; } 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.