Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:04 Der er 26 kommentarer og
1 løsning

Session Problem.

Hej eksperter.

har gloet mig blind på dette problem nu...

sidder med en opdelt bruger tilmeldingt, hvor det blider smidt i en sesion med følgende kode:

foreach ($_POST as $key => $value)
{
    $_SESSION[$key] = $value;
}

----

I sidste ende, skal jeg så have det trukket ud og smidt i en database...

har forsøgt mig med :

<?php

session_start();

foreach ($_SESSION as $key => $value)
{
    $_POST[$key] = $value;
}

echo $_POST['udfyldtFornavn'];

?>

----------

Hvilket også virker fint nok... MEN

hvordan får jeg det nemmest smidt i databasen, uden at skulle køre alle tingene igennem??

Ved godt at det nok er nemt, men har siddet og kodet siden klokken 08 i morges...

- BlackScorpion.
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:08 #1
hov.. kan se jeg ikke fik ændret titelen.. må i undskylde. :(
Avatar billede radion Nybegynder
30. januar 2006 - 00:18 #2
hvorfor ikke smide en insert ind i dit foreach loop?
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:19 #3
fordi jeg har set mig blind på det... er totalt blank... havde en dead line til i aften klokken 23:00 ... er rendt næsten 1½ time over, har fyret 100K tegn af på omkring 4-5 timer bare her til aften.. er stresset og træt...

så kan slet ikke tænke. :(
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:21 #4
og problemet med en insert i foreach'en er at jeg skal skrive hvert enkelt...

øhhh...

nu røg jeg ud af den.. igen...
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:24 #5
altså noget ala:

$sql = "update min tabel set";

foreach ($_SESSION as $key => $value)
{
  $sql =. "$_POST[$key] = $value,";
}

mysql_query($sql);

??????
Avatar billede radion Nybegynder
30. januar 2006 - 00:24 #6
sorry.. misforstod..

men, du kan da samle sammen...
$sql_key="";
$sql_val="";
foreach ($_SESSION as $key => $value)
{
    $_POST[$key] = $value;
    $sql_key.=$key.',';
    $sql_val .="'$value',";

}

$sql_val=substr($sql_val,0,strlen($sql_val -1));
$sql_key=substr($sql_key,0,strlen($sql_key -1));
mysql_query("Insert into tbl($sql_key) values($sql_key)");
Avatar billede radion Nybegynder
30. januar 2006 - 00:26 #7
hvad skal du med $_POST?
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:26 #8
smider den så ALT i databasen.. lad os sige der er 20 felter, så ryger alle 20 felter ind ?
Avatar billede radion Nybegynder
30. januar 2006 - 00:29 #9
Hvis jeg har forstået dit behov rigtig, så ja..

den vil lave en

mysql_query("Insert into tbl(key1,key2,key3,key4) values('value1','value2','value3','value4')");
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:29 #10
kan se felterne ikke hedder det samme som i databasen... god damnit... :(

kan se jeg har en array med alle mysql felterne som jeg skal bruge.. men spørgsmålet er så bare om felterne fra formen lægger i rigtig rækkefølge...
Avatar billede radion Nybegynder
30. januar 2006 - 00:30 #11
$sql_val=substr($sql_val,0,strlen($sql_val -1));
$sql_key=substr($sql_key,0,strlen($sql_key -1));

De her 2 sørger for at fjerne det sidste komma der bliver genereret i foreach løkken..

men, hvad skal du bruge den $_POST til? så vidt jeg kan se er det da de samme værdier du har smidt i en session i starten af scriptet
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:31 #12
og der er også ændret felter... :(

må kigge på det i morgen.. damn..

så må jeg lave en array så det hele passer.

hvordan sammenligner jeg array'et med sessionen ?
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:32 #13
som sagt så mig blind.. og fandt mit tidligere spørgsmål om hvordan jeg opretter det i første omgang.. og der snakkede ham der hjalp mig og jeg om bare at vende processen.. så hvis der er noget der ikke skal være der, så fjern det endeligt. :)
Avatar billede radion Nybegynder
30. januar 2006 - 00:33 #14
i forhold til ikke at have samme keys som i databasen.

så må du lave et array hvor du har session keys og tabel keys

NY KODE:::

$arr_keys=array('session_key1'=>'tabel_key1','session_key2'=>'tabel_key2');
$sql_key="";
$sql_val="";
foreach ($_SESSION as $key => $value)
{
    $_POST[$key] = $value;
    $sql_key.=$arr_keys[$key].',';
    $sql_val .="'$value',";

}

$sql_val=substr($sql_val,0,strlen($sql_val -1));
$sql_key=substr($sql_key,0,strlen($sql_key -1));
mysql_query("Insert into tbl($sql_key) values($sql_key)");
Avatar billede radion Nybegynder
30. januar 2006 - 00:35 #15
"hvordan sammenligner jeg array'et med sessionen ?"
ved at lave et array der har session_key som key og tabel_key som value

$arr_keys=array('session_key1'=>'tabel_key1','session_key2'=>'tabel_key2');
$sql_key="";
$sql_val="";
foreach ($_SESSION as $key => $value)
{
//Fjernet din POST
    $sql_key.=$arr_keys[$key].',';
    $sql_val .="'$value',";

}

$sql_val=substr($sql_val,0,strlen($sql_val -1));
$sql_key=substr($sql_key,0,strlen($sql_key -1));
mysql_query("Insert into tbl($sql_key) values($sql_key)");
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:37 #16
okey for lige at være på den sikre side:

i min session har jeg følgende felter:

MitForNavn, MitEfterNavn, MinAdresse

i databasen har jeg følgende felter:

name, lastname, adress

det bliver så til

$arr_keys=array('MitForNavn'=>'name', 'MitEfterNavn'=>'lastname','MinAdresse','adress');

og så skulle det virke ?
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:37 #17
hov det , mellem MinAdresse og adress skal selvfølgelig være en => ...
Avatar billede radion Nybegynder
30. januar 2006 - 00:42 #18
nøjagtigt :)
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:42 #19
okey cool, tak for hjælpen, smid lige et svar, så jeg kan daffe i seng. ;)
Avatar billede radion Nybegynder
30. januar 2006 - 00:43 #20
så bliver din

    $sql_key.=$arr_keys[$key].',';
til:
$sql_key.=$arr_keys['MitForNavn'].',';
som igen bliver til
$sql_key .='name,';

så den skulle være i vinkel :)
Avatar billede radion Nybegynder
30. januar 2006 - 00:44 #21
hopla
god dafning
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:45 #22
argh!! ikke gøre mig forvirret nu... det er nok at det virker... alt hvad jeg har brug for til i morgen...

som det er nu hvor jeg ændrer det som jeg skrev før, så skal der INTET gøre vel ?
Avatar billede radion Nybegynder
30. januar 2006 - 00:46 #23
nej, der skal ikke gøres mere :) jeg demonstrerede bare hvad der ville ske :) koden fra min kommentar 30/01-2006 00:35:03 er ikke ændret :)
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:46 #24
forresten ang. den her:

$arr_keys=array('MitForNavn'=>'name', 'MitEfterNavn'=>'lastname','MinAdresse','adress');

hvis nu felter kommer ind som her:

MinAdresse, MitEfterNavn, MitNavn ... spiller det nogen rolle i de står i anden række følge i array'et ?
Avatar billede radion Nybegynder
30. januar 2006 - 00:49 #25
nej overhovedet ikke. det er ligegyldig hvilken rækkefølge de er i.
Avatar billede blackscorpion Nybegynder
30. januar 2006 - 00:50 #26
okey cool, tak for hjælpen, og sov godt når du når så langt. :D
Avatar billede radion Nybegynder
30. januar 2006 - 00:50 #27
mange tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel