So sánh chuỗi trong vấn sql

So sánh chuỗi trong vấn sql

Gửi bàigửi bởi vantrungtin » 12/03/2011 20:37 » by

chào các bạn!
Mình có vấn đề chưa hiểu vê so sánh chuỗi trong trong zend.
chẳng hạn mình có textbox nhâp tên khuyên mãi: khuyến mãi 01
và trong cơ sở dữ liệu bảng khuyến mãi mình cũng có tên khuyến mãi: khuyến mãi 01
đây là đoạn code truy vấn của mình
Mã: Chọn tất cả
$auth = new libcommon();
                $result=0;
      $db=Zend_Registry::get('connectDB');
          $sql="SELECT * FROM KHUYEN_MAI WHERE upper(TEN_KM) like upper('%".trim($auth->changeString($_POST['data']))."%')";
          $result=count($db->fetchAll($sql));
      echo $result;

Đoạn mã trên nếu so sánh đúng thì kết quả trả về một ngược lại trả về 0.
Nếu không có dấu thì mình so sánh đúng. nhưng khi gõ có dấu tiếng việt thì không kiểm tra được.
Về phần cấu hình trong file Bootstrap thì đúng và cơ sở dữ liệu thì mình cũng thiết lập kiểu unicode luôn rồi.
Mong các bạn giúp đỡ.
Các ơn các bạn...
Hình đại diện của thành viên
vantrungtin
Member
 
Bài viết: 53
Ngày tham gia: 04/11/2010 01:57
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: So sánh chuỗi trong vấn sql

Gửi bàigửi bởi chungnn » 12/03/2011 21:13 » by

Trong tham số kết nối của bạn đã có SET NAMES utf8 chưa?
Hình đại diện của thành viên
chungnn
On Holiday
On Holiday
 
Bài viết: 817
Ngày tham gia: 16/03/2010 12:00
Đã cảm ơn: 5 lần
Được cảm ơn: 15 lần

Re: So sánh chuỗi trong vấn sql

Gửi bàigửi bởi vantrungtin » 12/03/2011 21:45 » by

co. Trong file bootstrap hàm _initDb() mình đã set name 'utf8' rồi.
Hình đại diện của thành viên
vantrungtin
Member
 
Bài viết: 53
Ngày tham gia: 04/11/2010 01:57
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: So sánh chuỗi trong vấn sql

Gửi bàigửi bởi chungnn » 12/03/2011 21:50 » by

Thế thì chịu rồi.
Thường thì sự sai khác này do sự khác nhau của collation trong bảng gây ra. Nhưng nếu mình đã set utf8 rồi, dữ liệu mình nhập vào từ web app của mình thì lúc lấy ra để so sánh nó vẫn giống nhau mà
Hình đại diện của thành viên
chungnn
On Holiday
On Holiday
 
Bài viết: 817
Ngày tham gia: 16/03/2010 12:00
Đã cảm ơn: 5 lần
Được cảm ơn: 15 lần

Re: So sánh chuỗi trong vấn sql

Gửi bàigửi bởi Mr.L » 12/03/2011 21:54 » by

Mã: Chọn tất cả
$db=Zend_Db::factory($adapter,$config);
      $sql = $db->select()
              ->from('loai_san_pham')
              ->where('TEN_LOAI = ?','Đĩa cứng',STRING);
              $result = count($db->fetchAll($sql));
              echo $result;


mình đã test trong database có Đĩa cứng và ra bằng 1. Bạn thữ xem sao
Hình ảnh
do
msgbox "Học là chiện lớn, chơi là chiện nhỏ, không làm được chiện nhỏ sao làm được chiện lớn";
loop
Hình đại diện của thành viên
Mr.L
On Holiday
On Holiday
 
Bài viết: 1977
Ngày tham gia: 03/08/2010 15:23
Đến từ: Zendvn Group
Đã cảm ơn: 1 lần
Được cảm ơn: 35 lần

Re: So sánh chuỗi trong vấn sql

Gửi bàigửi bởi vantrungtin » 13/03/2011 07:23 » by

cám ơn các bạn nhiều nhé. hj hj
mình làm được rồi. Do khi tao database minh không thiết lập collection là utf8-unicode-ci.
mặc dù trong bảng cơ sở dữ liệu có thiết lập cho cột là utf8-unicode-ci nhưng nó vẫn không hiểu.
Hình đại diện của thành viên
vantrungtin
Member
 
Bài viết: 53
Ngày tham gia: 04/11/2010 01:57
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần


Quay về Hỏi đáp chung về Zend Framework

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.6 khách.

jQuery Api | Javascript DOM | Lap trinh web