2012-11-24 30 views
5

Tôi có chức năng PHP để hiển thị thông báo bằng thẻ bắt đầu bằng #.Chỉ chọn phần thẻ bắt đầu bằng # từ chuỗi cơ sở dữ liệu

PHP mã như thế này:

include 'includes/_db_.php'; 

$sql_t = "SELECT message FROM t_haps_wall WHERE message LIKE '%#%'"; 
$hasil_t = mysql_query($sql_t) or die(mysql_error()); 

while($data_t = mysql_fetch_array($hasil_t)) 
{ 
$message_t = $data_t['message']; 
} 

Mã này đang chạy ok, nhưng bây giờ làm thế nào để thiết lập chỉ cho tôi thấy hashtag? Nếu trong ví dụ như thế này:

nhắn = Tôi thích bạn #loveyou

Trong hiện tại của tôi, Nó sẽ hiển thị tất cả các tin nhắn, tôi chỉ muốn hiển thị #loveyou. Có thể không?

Cảm ơn bạn đã trợ giúp.

+0

Bạn có thể xác định thẻ bắt đầu bằng # không? Bắt đầu bằng '#' và kết thúc bằng khoảng trắng hoặc kết thúc chuỗi? RegEx là những gì bạn cần ở đây. Ngoài ra, điều này chỉ dành cho mục đích hiển thị? Nếu nó không thể được thực hiện trên kết thúc DB, bạn có thể làm điều đó trong ứng dụng cho chắc chắn, nhưng chỉ khi bạn không cần phải sắp xếp hoặc nhóm vào nó hoặc một cái gì đó trong DB. – Brad

+0

Bạn có thể có nhiều băm trong một tin nhắn không? – Cyclonecode

+0

@KristerAndersson Tôi có thêm tin nhắn với 1 hoặc 2 hoặc nhiều hơn băm .. – Nagini

Trả lời

5
SELECT SUBSTR(message, LOCATE('#', message)) hashtag 
FROM t_haps_wall 
WHERE message like '%#%' 
+0

cảm ơn bạn rất nhiều @ barmar. Nó hoạt động. :) – Nagini

+0

@Barmar Làm thế nào sẽ là đầu ra khi nhiều '#' xảy ra trong tin nhắn? –

+1

Nó sẽ hiển thị mọi thứ từ '#' đầu tiên. – Barmar

Các vấn đề liên quan