Hiển thị kết quả từ 1 đến 7 / 7
  1. #1
    Tham gia
    02-08-2010
    Location
    Biên Hòa
    Bài viết
    5
    Like
    0
    Thanked 0 Times in 0 Posts

    Hạnh phúc Cách tìm kiếm có dâu, không dấu, chữ hoa, chữ thường

    Xin chào mọi người,
    Mình đang gặp rắc rối ở chỗ tìm kiếm, mình chỉ dùng "LIKE" để tìm kiếm bình thường thôi, nhưng giờ mình muốn khi nhập vào ô tìm kiếm nó tìm tất cả những chuỗi có dấu, không dấu, chữ hoa và chữ thường ra luôn, không biết có cách nào làm được như vậy không, nhờ các bác chỉ giáo.
    Quote Quote

  2. #2
    Tham gia
    03-02-2009
    Bài viết
    1,192
    Like
    0
    Thanked 1 Time in 1 Post
    Viết 1 hàm lọc hết dấu tiếng Việt. Kết hợp hàm LCASE() của MySQL và strtolower() của PHP.
    Code:
    $st=strtolower($st);
    $chuoikodau=ham_loc_dau($st);
    $sql="SELECT * FROM table WHERE LCASE(field) LIKE '%$st%' OR field LIKE '%chuoikodau%'";

  3. #3
    Tham gia
    02-06-2007
    Bài viết
    981
    Like
    0
    Thanked 2 Times in 2 Posts
    ham_loc_dau($st);
    hàm lọc dấu quan trong nhất bác lại khong cho. hic

  4. #4
    Tham gia
    03-02-2009
    Bài viết
    1,192
    Like
    0
    Thanked 1 Time in 1 Post
    Code:
    function ham_loc_dau($st){
    $codau=array("à","á","ạ","ả","ã","â","ầ","ấ","ậ","ẩ","ẫ","ă",
    "ằ","ắ","ặ","ẳ","ẵ","è","é","ẹ","ẻ","ẽ","ê","ề"
    ,"ế","ệ","ể","ễ",
    "ì","í","ị","ỉ","ĩ",
    "ò","ó","ọ","ỏ","õ","ô","ồ","ố","ộ","ổ","ỗ","ơ"
    ,"ờ","ớ","ợ","ở","ỡ",
    "ù","ú","ụ","ủ","ũ","ư","ừ","ứ","ự","ử","ữ",
    "ỳ","ý","ỵ","ỷ","ỹ",
    "đ",
    "À","Á","Ạ","Ả","Ã","Â","Ầ","Ấ","Ậ","Ẩ","Ẫ","Ă"
    ,"Ằ","Ắ","Ặ","Ẳ","Ẵ",
    "È","É","Ẹ","Ẻ","Ẽ","Ê","Ề","Ế","Ệ","Ể","Ễ",
    "Ì","Í","Ị","Ỉ","Ĩ",
    "Ò","Ó","Ọ","Ỏ","Õ","Ô","Ồ","Ố","Ộ","Ổ","Ỗ","Ơ"
    ,"Ờ","Ớ","Ợ","Ở","Ỡ",
    "Ù","Ú","Ụ","Ủ","Ũ","Ư","Ừ","Ứ","Ự","Ử","Ữ",
    "Ỳ","Ý","Ỵ","Ỷ","Ỹ",
    "Đ"," ");
    
    $khongdau=array("a","a","a","a","a","a","a","a","a","a","a"
    ,"a","a","a","a","a","a",
    "e","e","e","e","e","e","e","e","e","e","e",
    "i","i","i","i","i",
    "o","o","o","o","o","o","o","o","o","o","o","o"
    ,"o","o","o","o","o",
    "u","u","u","u","u","u","u","u","u","u","u",
    "y","y","y","y","y",
    "d",
    "A","A","A","A","A","A","A","A","A","A","A","A"
    ,"A","A","A","A","A",
    "E","E","E","E","E","E","E","E","E","E","E",
    "I","I","I","I","I",
    "O","O","O","O","O","O","O","O","O","O","O","O"
    ,"O","O","O","O","O",
    "U","U","U","U","U","U","U","U","U","U","U",
    "Y","Y","Y","Y","Y",
    "D","_");
    return str_replace($codau,$khongdau,$st);
    }

  5. #5
    Tham gia
    25-07-2006
    Location
    127.0.0.1
    Bài viết
    120
    Like
    1
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi gia_cat_luong View Post
    Xin chào mọi người,
    Mình đang gặp rắc rối ở chỗ tìm kiếm, mình chỉ dùng "LIKE" để tìm kiếm bình thường thôi, nhưng giờ mình muốn khi nhập vào ô tìm kiếm nó tìm tất cả những chuỗi có dấu, không dấu, chữ hoa và chữ thường ra luôn, không biết có cách nào làm được như vậy không, nhờ các bác chỉ giáo.
    Bạn set Collation trong CSDL là gì vậy?

    Mình làm CSDL hay đặt Collation là utf8_general_ci thì tìm kiếm tiếng Việt bình thường mà.

    Keyword mình giữ nguyên, không dùng các hàm kiểu như ham_loc_dau(),...

    Dù mình nhập keyword là tiếng việt có dấu hay không dấu thì kết quả trả về nếu có đều là: Kết quả tiếng việt có dấu, không dấu, chữ hoa, chữ thường đều ra hết. Chỉ bị mỗi trường hợp keyword có ký tự đầu tiên là "đ" thì không ra, lúc này mình chỉ xử lý ngoại lệ trường hợp ký tự đầu tiên là "đ" thôi.

  6. #6
    Tham gia
    14-06-2006
    Bài viết
    280
    Like
    0
    Thanked 20 Times in 19 Posts
    Dùng PHP tạo 1 table đã gọt hết dấu, chỉ phục vụ cho việc tìm kiếm. Mình làm cách đó mới khác phục đc.

  7. #7
    Tham gia
    02-06-2007
    Bài viết
    981
    Like
    0
    Thanked 2 Times in 2 Posts
    cách bac jdkhang có lỗi chứ "đ" chưa tưng thử nay mwois biết cám ơn bác cái lỗi này.

    @haicop bác nói ró hơn chút được hog . thank bác trước

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •