Jump to content
php.lv forumi

Sesijas sadalīšana priekš MySQL inserta


Go to solution Solved by v3rb0,

Recommended Posts

ī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ā :( :( :(

Link to post
Share on other sites

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 />';
                }

Link to post
Share on other sites

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() );
}

Link to post
Share on other sites

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 virkni
18,18,15,14,19,18,14,14,18,15
tad 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 by Cibiņš
Link to post
Share on other sites

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 .

Link to post
Share on other sites

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.

Link to post
Share on other sites

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 />';
}

Link to post
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...