2015-04-29 41 views
0

我遇到了與從表中存儲的序列化數據獲取一些數據並將其用於排隊另一個表有關的問題。我的做法是下面的,但我很新的編程和它不工作將一些數據反序列化成一個數組

table wppg_album 
id - name - gallery_list 
1 - album1 - a:1:{i:0;s:1:"1";i:1;s:1:"8"} 
2 - album2 - a:2:{i:0;s:2:"17";i:1;s:2:"19";i:2;s:2:"18";} 
3 - album3 - a:3:{i:0;s:2:"13";} 

我堅持與得到的SQL字符串和細胞gallery_list反序列化數據爲選定的ID。

要處理的專輯現在已修復,請告訴#2我必須獲得array(17,18,19)才能最終從畫廊表中獲得結果。

我寫了這個代碼,但串行數據的獲取doesen't工作

<?php 
    $sql = "SELECT * FROM ".WPPG_TBL_ALBUM." WHERE id = 2"; 
    $result = mysql_query($sql); 
    $stringGalleries = mysql_fetch_object($result); 
    $galleries = unserialize($stringGalleries); 
    $ids = join(',',$galleries); 
    $data = $wpdb->get_results("SELECT * FROM ".WPPG_TBL_GALLERY." WHERE id IN ($ids)"); 
?> 

任何幫助將不勝感激。

回答

3

你有一個錯字$和;缺少

$galleries = unserialize($stringGalleries); 

還你以錯誤的方式使用mysql_fetch_object ...這裏是正確的代碼

<?php 
    $sql = "SELECT * FROM ".WPPG_TBL_ALBUM." WHERE id = 2"; 
    $result = mysql_query($sql); 
    while ($galleriesRow = mysql_fetch_object($result)) { 
     $galleries = unserialize($galleriesRow->gallery_list); 
     $ids = join(',',$galleries); 
     $data = $wpdb->get_results("SELECT * FROM ".WPPG_TBL_GALLERY." WHERE id IN (" . $ids. ")"); 
     } 
?> 
+0

感謝隊友的暗示。但它只是一個重新輸入的錯誤...不能解決問題 –

+0

非常感謝,它的作用就像一個魅力。這解決了我的問題。我是新來的,我必須添加某處[解決]或類似的東西?再次感謝你 –