2013-08-20 22 views
-2

我通過php使用一個插入命令將存儲在會話變量中的多個狀態值傳遞到MySQL表中,並且我想知道是否可以將每個狀態值插入到不同的行中。我還有一個ID保存在一個變量中,我想在每個狀態中插入一個變量。如何從保存在會話中的數組中插入多行到表中?

$ campaign_id 每個狀態都存儲在此會話變量中。

print_r($ _ SESSION ['stateslist']); 假設我已經保存在$ _SESSION [「stateslist」](紐約州,加利福尼亞州)兩種狀態和活動ID 5,我想我的數據庫看起來像這樣

 
campaign_id state 
    5    NY 
    5    CA 

我知道這是類似於此插入多行通過PHP數組到MySQL中,但我有問題插入保存在會話中的每個狀態以及campaign_id。

+1

請不要發表幾次相同的問題,它不會幫助你,也不會幫助我們。 – Prix

回答

0

有幾種方法可以沿着從一個腳本到另一個一些變量傳遞,但如果你真的想使用該會話瓦爾,我想你應該:

投你的鍵值數組作爲關聯數組

$myvar=array('campaign_id'=>5, 'states'=>array('NY,CA')); 

json_encode它將放入一個字符串,將適合您的會話變量。

$_SESSION['campaign_state']=json_encode($myvar); 

一旦檢索會話VAR你json_decode它:

$myarray=json_decode($_SESSION['campaign_state'],true); 

遍歷 '州' 鍵:

$query=array(); 
foreach($myarray['states'] as $state) { 
    $query[]=insert into mytable (campaign,state) values ({$myarray['campaign_id')},$state); 
} 

這是一個骯髒的廉價的解決方案,你仍然應該清理那些變量。

+0

謝謝,我打算試一試。我只使用會話變量,因爲我必須在表單中使用header(「Location:」「);而我不想通過URL傳遞信息。 – user2698144

相關問題