PDA

View Full Version : Hỏi gấp về tìm kiếm trong Php và Mysql



camellia987
16-04-2008, 16:12
Tôi viết một trang web bằng PHP Và MYSQL. trong mục tìm kiếm của tôi thì xảy ra trường hợp một số tên như:Tính,Hùng mà tôi dùng để tìm kiếm thì lại không tìm ra được (còn một số tên như:Thắng,Vinh,Lượng thì lại tìm được) mặc dù là trong CSDL đã có tên này.các bạn giúp mình với.help me......

zoejoe
16-04-2008, 17:26
hay là bạn chuyển thành dạng chữ non-unicode (search trong box này, có bài anh 3do chia sẻ cho anh em chuyển từ tiếng việt sang không dâu) rồi lại chuyển sang chữ thường, sau đó mới KT. Như thế chắc tốt hơn đó !

internews07
16-04-2008, 18:09
Như bạn nói thì chuyển được từ tiếng việt có dấu sang không dấu. Nhưng mà chuyển từ không dấu sang có dấu phải làm cách nào bạn ơi.mình không biết.

zoejoe
16-04-2008, 18:23
Như bạn nói thì chuyển được từ tiếng việt có dấu sang không dấu. Nhưng mà chuyển từ không dấu sang có dấu phải làm cách nào bạn ơi.mình không biết.

Sao được chứ !

Tiếng Việt có dấu -> không dấu theo cơ chế â,ă,ẩ, ... -> a, etc...
Còn việt chuyển từ không dấu sang có dấu bất khả thi, vì đâu thể nào đoán trước được ý nghĩa của câu mà thêm dấu, lạn quạng lại hiểu lầm : "anh oi, nho mua bao nhe, nha het bao roi, anh dung het roi. Anh nho cu hanh sau he nhe, em mat kinh roi, khong nhin duoc. Anh chiu kho lam mot minh nhe", bạn sẽ thêm ra sao ??

// Anh ơi, nhớ mua báo nhé, nhà hết báo rồi, anh dùng hết rồi. Anh nhớ nhổ củ hành sau hè nhé, em mất kính rồi, không nhìn đựoc. Anh chịu khó làm 1 mình nhé !!?

internews07
16-04-2008, 19:10
Bạn có thể gửi cho mình đoạn mã chuyển TV có dấu sang không dấu được không.mình đăng rất cần. Thanks

zoejoe
17-04-2008, 18:40
Bạn có thể gửi cho mình đoạn mã chuyển TV có dấu sang không dấu được không.mình đăng rất cần. Thanks



// Bảng dịch ký tự không dấu bao gồm 2 bảng mã cho unicode và windows cp 1258
$trans = array ('à' => 'a', 'á' => 'a', 'ả' => 'a', 'ã' => 'a', 'ạ' => 'a', 'â' => 'a', 'ấ' => 'a', 'ầ' => 'a', 'ẫ' => 'a', 'ẩ' => 'a', 'ậ' => 'a', 'ú' => 'a', 'ù' => 'u', 'ủ' => 'u', 'ũ' => 'u', 'ụ' => 'u', 'à' => 'a', 'á' => 'a', 'ô' => 'o', 'ố' => 'o', 'ồ' => 'o', 'ổ' => 'o', 'ỗ' => 'o', 'ộ' => 'o', 'ó' => 'o', 'ò' => 'o', 'ỏ' => 'o', 'õ' => 'o', 'ọ' => 'o', 'ê' => 'e', 'ế' => 'e', 'ề' => 'e', 'ể' => 'e', 'ễ' => 'e', 'ệ' => 'e', 'í' => 'i', 'ì' => 'i', 'ỉ' => 'i', 'ĩ' => 'i', 'ị' => 'i', 'ơ' => 'o', 'ớ' => 'o', 'ý' => 'y', 'ỳ' => 'y', 'ỷ' => 'y', 'ỹ' => 'y', 'ỵ' => 'y', 'ờ' => 'o', 'ở' => 'o', 'ỡ' => 'o', 'ợ' => 'o', 'ư' => 'u', 'ừ' => 'u', 'ứ' => 'u', 'ử' => 'u', 'ữ' => 'u', 'ự' => 'u', 'đ' => 'd', 'À' => 'A', 'Á' => 'A', 'Ả' => 'A', 'Ã' => 'A', 'Ạ' => 'A', 'Â' => 'A', 'Ấ' => 'A', 'À' => 'A', 'Ẫ' => 'A', 'Ẩ' => 'A', 'Ậ' => 'A', 'Ú' => 'U', 'Ù' => 'U', 'Ủ' => 'U', 'Ũ' => 'U', 'Ụ' => 'U', 'Ô' => 'O', 'Ố' => 'O', 'Ồ' => 'O', 'Ổ' => 'O', 'Ỗ' => 'O', 'Ộ' => 'O',

'Ê' => 'E', 'Ế' => 'E', 'Ề' => 'E', 'Ể' => 'E', 'Ễ' => 'E', 'Ệ' => 'E', 'Í' => 'I', 'Ì' => 'I', 'Ỉ' => 'I', 'Ĩ' => 'I', 'Ị' => 'I', 'Ơ' => 'O', 'Ớ' => 'O', 'Ờ' => 'O', 'Ở' => 'O', 'Ỡ' => 'O', 'Ợ' => 'O', 'Ư' => 'U', 'Ừ' => 'U', 'Ứ' => 'U', 'Ử' => 'U', 'Ữ' => 'U', 'Ự' => 'U', 'Đ' => 'D', 'Ý' => 'Y', 'Ỳ' => 'Y', 'Ỷ' => 'Y', 'Ỹ' => 'Y', 'Ỵ' => 'Y',

'á' => 'a', 'à' => 'a', 'ả' => 'a', 'ã' => 'a', 'ạ' => 'a', 'ă' => 'a', 'ắ' => 'a', 'ằ' => 'a', 'ẳ' => 'a', 'ẵ' => 'a', 'ặ' => 'a', 'â' => 'a', 'ấ' => 'a', 'ầ' => 'a', 'ẩ' => 'a', 'ẫ' => 'a', 'ậ' => 'a', 'ú' => 'u', 'ù' => 'u', 'ủ' => 'u', 'ũ' => 'u', 'ụ' => 'u', 'ư' => 'u', 'ứ' => 'u', 'ừ' => 'u', 'ử' => 'u', 'ữ' => 'u', 'ự' => 'u', 'í' => 'i', 'ì' => 'i', 'ỉ' => 'i', 'ĩ' => 'i', 'ị' => 'i', 'ó' => 'o', 'ò' => 'o', 'ỏ' => 'o', 'õ' => 'o', 'ọ' => 'o', 'ô' => 'o', 'ố' => 'o', 'ồ' => 'ô', 'ổ' => 'o', 'ỗ' => 'o', 'ộ' => 'o', 'ơ' => 'o', 'ớ' => 'o', 'ờ' => 'o', 'ở' => 'o', 'ỡ' => 'o', 'ợ' => 'o', 'đ' => 'd', 'Đ' => 'D', 'ý' => 'y', 'ỳ' => 'y', 'ỷ' => 'y', 'ỹ' => 'y', 'ỵ' => 'y', 'Á' => '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', 'Ú' => 'U', 'Ù' => 'U', 'Ủ' => 'U', 'Ũ' => 'U', 'Ụ' => 'U', 'Ư' => 'U', 'Ứ' => 'U', 'Ừ' => 'U', 'Ử' => 'U', 'Ữ' => 'U', 'Ự' => 'U', 'Í' => 'I', 'Ì' => 'I', 'Ỉ' => 'I', 'Ĩ' => 'I', 'Ị' => 'I', 'Ó' => 'O', 'Ò' => 'O', 'Ỏ' => 'O', 'Õ' => 'O', 'Ọ' => 'O', 'Ô' => 'O', 'Ố' => 'O', 'Ổ' => 'O', 'Ỗ' => 'O', 'Ộ' => 'O', 'Ơ' => 'O', 'Ớ' => 'O', 'Ờ' => 'O', 'Ở' => 'O', 'Ỡ' => 'O', 'Ợ' => 'O', 'Ý' => 'Y', 'Ỳ' => 'Y', 'Ỷ' => 'Y', 'Ỹ' => 'Y', 'Ỵ' => 'Y', ' ' => '-' )

;

// Dịch Tiếng Việt có dấu thành không dấu theo 2 bảng mã Unicode va window cp 1258
$text = strtr ( $text, $trans ); // Chuỗi đã được bỏ dấu


Của anh 3do đó, lấy về mà xài :D

internews07
17-04-2008, 20:20
Mình cảm ơn bạn nhiều nhá. Hi vọng chúng ta sẽ giao lưu nhiều hơn như.

buonbannet08
18-04-2008, 22:54
Bạn dùng mysql phiên bản mấy? Nếu dùng mysql 4.1 trở lên và collation để unicode_general_ci thì hoàn toàn có thể tìm kiếm đc