Nội quy chuyên mục: Đây không phải mục support. Chỉ thảo luận các vấn đề liên quan đến code đang phát triển tại [url14qaivcv]http//code.nukeviet.vn[/url14qaivcv] và các vấn đề tồn tại cũng như đề xuất cải tiến hệ thống.
#158112 gửi bởi votuong
Ngày 16 Tháng 06 2014 , 03:30
Hiện tại mình đang cần sử dụng nv_db_cache nhưng nó theo cấu trúc nv_db_cache( $sql[Câu lệnh], $key = ''[Khóa chính], $modname = ''[Tên module] ).

Mình muốn $modname nó chi tiết hơn như có thêm funtion giống biến lưu $_SESSION () chẳng hạn hoặc tên nào đó khác tên module. Vì nếu lưu $modname với tên module thì khi xóa nv_del_moduleCache( $module_name ); nó sẽ xóa tất cả cache của module. mà 1 số cái mình không muốn xóa.

Mong mọi người bày giúp. Thanks

http://vsoft.com.vn ---- Dẫn lỗi thành công ----
#158159 gửi bởi dangdinhtu
Ngày 17 Tháng 06 2014 , 08:09
Phương án trên không đúng trong trường hợp bạn muốn phải sử dụng cấu trúc này

Mã: Chọn hết
$array = array();
$cache_file = NV_LANG_DATA . "_" . $module_name . "_ten_gi_do_" . NV_CACHE_PREFIX . ".cache";
if ( ( $cache = nv_get_cache( $cache_file ) ) != false )
{
$array = unserialize( $cache );
}
else
{
$sql = "SELECT * FROM " . NV_PREFIXLANG . "_" . $module_data . " WHERE 1";
$result = $db->sql_query( $sql );
while( $item = $db->sql_fetch_assoc( $result ) )
{

$array[] = $item;
}
$cache = serialize( $array );
nv_set_cache( $cache_file, $cache );
}

var_dump( $array );

Diễn đàn Nukeviet mới do Mình và Nhím thủ lĩnh thành lập các bạn ghé qua học tập trao đổi nhé https://forum.nuke.vn/
#158161 gửi bởi votuong
Ngày 17 Tháng 06 2014 , 09:42
Cảm ơn dangdinhtu mình đã thử cách trên nó đơn giản hơn, và mình đã dùng giải pháp thủ công để thực hiện nhưng thấy khá hiệu quả.

Mã: Chọn hết
$sql = "SELECT * FROM " . NV_PREFIXLANG . "_" . $module_data . " WHERE 1";
$list = nv_db_cache( $sql, 'id', $module_name . "_other" );
foreach( $list as $row )
{
}


Với những $sql khác mình sẽ đổi tên _other đi. Và muốn xóa sql nào thì nv_del_moduleCache( $module_name . "_other" ).

Lần đầu tiên dùng tới cái này nên hơi bở ngỡ xíu do cái web dữ liệu quá nhiều làm cho nó quá nặng. Mình đã thử cách này và khá thành công.

http://vsoft.com.vn ---- Dẫn lỗi thành công ----