Asked Jan 8th, 6:41 AM 71 0 1
  • 71 0 1
0

Tự động embed Youtube video dựa trên tags của bài viết

Share
  • 71 0 1

Mình đang chế một chức năng để tự động embed Youtube dựa trên tag mà bài viết đó có. Một bài viết đơn thuần có title, content và tags.

Ví dụ, một bài viết có tags là coconut,walnut,peanut.

$tag = 'coconut,walnut,peanut';

Bây giờ mình lập 1 table có chứa thông tin về tất cả các video có thể liên quan. Table này cũng có ID, VideoID, và tags (đừng nhầm với tags của bài viết bên trên)

Youtube

ID VideoID tags
1 vnwyREMS carrot,potato
2 Tgyth_sasWSD tomato,walnut,apple
3 KDAQ_VEW peanut, cooking

Giờ mình muốn kiểm tra xem trong bảng Youtube có record nào có chứa 1 tag bất kỳ nào thì trả dữ liệu VideoID để mình nhét embed code vào. Chỉ cần kiểm tra có kết quả đầu tiên thì dừng, không cần check tiếp. Nếu không có kết quả thì tiếp tục check tag thứ 2 cho đến hết.

Mình cần làm gì? Mình nghĩ bước đầu tiên là chuyển string thành array.

$array = array($tag);

Rồi dùng hàm FOREACH cộng với break. Như thế này có được không?

FOREACH ($array as $arr) {
        $result = homemade_query('SELECT videoid from youtube WHERE tags LIKE "%$%" ORDER by id DESC LIMIT 1',$arr);
        if isset($result){
        //do something
        break;
        }
    }

1 ANSWERS


Answered Jan 8th, 6:46 AM
+1

Giờ có tag nào mà search có kết quả thì sẽ return luôn là được, vì khi return nghĩa là function của bạn sẽ kết thúc

và theo mình nghĩ bạn nên chia thêm 1 bảng tags và để relation với videos, vì lúc đó các tag có thể sử dụng cho nhiều video

Share
Avatar Dr Dokkan @dokkan7
Jan 8th, 8:12 AM

Cảm ơn bạn. Mình cũng đã nghe lời khuyên là dùng 3 bảng trong đó có 1 bảng để tạo quan hệ giữa tag và video. Điều này hay ở chỗ dễ lọc dữ liệu, đặc biệt là kiểu như "video có chứa tag A và tag B". Cái này mình thấy phù hợp hợp hơn với các trang chuyên về lọc dữ liệu, hoặc có kèm công cụ search. Hiện tại nếu làm thêm bảng quan hệ giữa tag và video sẽ khó thực hiện vì phải cập nhật bằng tay. Do video thì upload lên Youtube, còn bài viết thì lưu trong database, sẽ khó chế ra công cụ để tự cập nhật cái bảng này, do vậy nó phải cập nhật bằng tay nên sẽ hơi phiền.

0
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.