Hiển thị các bài đăng có nhãn ideal. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn ideal. Hiển thị tất cả bài đăng

Thứ Hai, 12 tháng 3, 2012

Sử lý lấy keywords cho 1 bài viết của module


Mẹo:
-Lấy trường keywords từ record bài viết.
-Nếu không có thì lọc keywords từ nội dung bài viết.
-Nếu không thì lọc từ tiêu đề title.

=> Sau đó update lại vào cột keywords của bài viết đó, để lần sau không phải tạo nữa.


if(!empty($row['keywords']))
{
    $key_words=$cache['key_words']=$row['keywords'];
}else
{
    $key_words=nv_get_keywords($row['bodytext']);

    if(empty($key_words))
    {
$key_words=nv_unhtmlspecialchars($row['title']);
        $key_words=strip_punctuation($key_words);
$key_words=trim($key_words);
$key_words=nv_strtolower($key_words);
$key_words=preg_replace("/[ ]+/",",",$key_words);
    }


    $cache['key_words']=$key_words;

    $query="UPDATE`".NV_PREFIXLANG."_".$module_data."` SET `keywords`=".$db->dbescape($key_words)." WHERE `id` =".$id;

    $db->sql_query($query);
}


Thứ tự các bài viết

Thứ tự các bài viết:
Có 1 trường ghi thứ tự bài viết weight.

-Các bài viết hiển thị theo nguyên tắc tăng dần của vị trí weight:
Show các records của bảng.
-Thêm bài viết:
đếm số records + 1 & ghi vào weight cho bài viết mới.
-Xóa 1 bài viết bất kỳ:
Xóa bài viết & sửa lại các records sau record bị xóa từ vị trí vị trí của record bị xóa đến n.
-sửa vị trí hiển thị bài viết:
Record sửa trùng với vị trí record nào thì đổi vị trí cho nhau.

Chủ Nhật, 11 tháng 3, 2012

Nghĩ về Cache

Cache: nghĩa là lưu tạm thời để sử dụng nó thay vì sử dụng từ nguồn dữ liệu chính & có thể xóa chúng khi không sử dụng nữa.
Cache được lấy từ nguồn dữ liệu chính để sử dụng trong quá trình dữ liệu chính gặp trục trặc or có quá nhiều người sử dụng thì sẽ chuyển sang cache.

Cache trong CSDL
Bài toán:
Có 1 dữ liệu A. Mọi người đến đây để khai thác sử dụng. Nếu có quá nhiều người đến sử dụng thì sẽ gây tắc nghẽn hệ thống bảo quản dữ liệu.
=> Để tránh điều này, thì dữ liệu A phải đặt thêm ở 1 nơi khác để chia bớt người sang đó. Nơi đó gọi là cache.

cache = Mở chi nhánh

$file="cache/test.php";
$expire=86400;

if(file_exists($file)
&&filemtime($file)>time()-86400
){
//đọc cache
$data=unserialize(file_get_contents($file));
}
else
{
//ghi vào cache
while($record=mysql_fetch_array($result))
{
$records[]=$record;
}
$output=serialize($records);
$fp=fopen($file,'w');
fputs($fp,$output);
fclose($fp);
}


 
Copyright © hoangit