Điều gì sẽ xảy ra nếu tôi có tên biến là $value_id và tôi muốn nó được sử dụng trong một truy vấn như trên thì làm cách nào để thực hiện điều đó bằng cách sử dụng Nhà xuất bản dữ liệu của WP Data Access thông qua Truy vấn tùy chỉnh???
Đang xem 12 trả lời - 1 đến 12 [trong tổng số 12]
Người đóng góp plugin Kim L
[@kimmyx]
Xin chào @mwambembela,
Truy vấn của bạn sẽ giống như thế này
SELECT first_name, last_name, phone_mobile, postcode, trade_type FROM customer WHERE [area_id = '$value_id'] AND [trade_id = '$value_tradeid']
Cho chúng tôi biết nếu bạn có nhiều câu hỏi
Trình bắt đầu chủ đề mwambembela
[@mwambembela]
Xin chào @kimmyx, tôi đã thử các mã bên dưới của mình như bạn đã giải thích trong các mã ở trên nhưng thật tệ là nó không thành công
Đây là truy vấn của tôi dưới đây
SELECT P.ID, MAX[IF[PM.meta_key = 'first_name', PM.meta_value, NULL]] AS Name, MAX[IF[PM.meta_key = 'last_name', PM.meta_value, NULL]] AS Last, MAX[IF[PM.meta_key = 'Gender', PM.meta_value, NULL]] AS Gender, MAX[IF[PM.meta_key = 'Department', PM.meta_value, NULL]] AS Department, MAX[IF[PM.meta_key = 'position_title', PM.meta_value, NULL]] AS Dpt, MAX[IF[PM.meta_key = 'region', PM.meta_value, NULL]] AS Region, MAX[IF[PM.meta_key = 'district_dar', PM.meta_value, NULL]] AS District, MAX[IF[PM.meta_key = 'status_av', PM.meta_value, NULL]] AS Status FROM wp_users AS P LEFT JOIN wp_usermeta AS PM on PM.user_id = P.ID WHERE P.ID in [select user_id from wp_usermeta where meta_key='Department' and [meta_value = '$dept']] and P.ID in [select user_id from wp_usermeta where meta_key='status_av' and meta_value = 'on'] group by P.ID
Tên biến là $dept trong giá trị meta bên dưới
Và đây là cách tôi khai báo nó trong hàm. php để nó có thể truy cập được trên trang web
global $current_user; get_currentuserinfo[]; $dept = $current_user->Department;
Bạn nghĩ tôi đang làm sai ở đâu ??
Giá trị $dept từ các chức năng được cho là được sử dụng trong truy vấn khi liệt kê dữ liệuThanks
- Câu trả lời này đã được sửa đổi 3 tháng trước bởi mwambembela .
- Câu trả lời này đã được sửa đổi 3 tháng trước bởi mwambembela .
- Câu trả lời này đã được sửa đổi 3 tháng trước bởi mwambembela .
Tác giả plugin Lập trình viên đầy nhiệt huyết Peter
[@peterschulznl]
Xin chào @mwambembela,
Không thể sử dụng biến PHP như $dept trực tiếp trong truy vấn. Biến $dept của bạn có sẵn trong PHP nhưng không có trong cơ sở dữ liệu nơi truy vấn của bạn được thực thi
Có một số cách để giải quyết vấn đề này. Một cách là làm cho biến của bạn có sẵn trong cơ sở dữ liệu dưới dạng biến phiên. Trong trường hợp đó, tên biến của bạn sẽ thay đổi thành @dept. Bạn có thể tìm thấy một ví dụ trên trang này
https. //wpdataaccess. com/2022/08/18/wordpress-user-id-in-sql/
xem phần. Cần thêm giá trị WordPress trong SQL?Một cách khác là sử dụng tham số shortcode. Tính năng này được giải thích ở đây
https. //wpdataaccess. com/docs/data-publisher/static-filters/
Xin lưu ý rằng bạn cần tạo chế độ xem cho truy vấn của mình để sử dụng các bộ lọc tĩnh. Loại bộ lọc này yêu cầu bạn cung cấp tên cột để thêm bộ lọcBạn cũng có thể sử dụng tham số URL như được giải thích tại đây
https. //wpdataaccess. com/docs/data-publisher/url-parameters/
Tính năng này cũng yêu cầu bạn lưu truy vấn của mình dưới dạng dạng xemKhông giúp đỡ à?
Thanks,
PeterTrình bắt đầu chủ đề mwambembela
[@mwambembela]
Cảm ơn @peterschulznl hãy để tôi tham gia và xem nó sẽ ra sao
Trình bắt đầu chủ đề mwambembela
[@mwambembela]
Xin chào @peterschulznl lại là tôi đây
Tôi đã thử sử dụng Phương thức biến phiên,
Vì vậy, trong cơ sở dữ liệu của tôi, tôi có một bảng tên là wp_users, tôi đã thực hiện truy vấn nàyselect * from wp_users
nó liệt kê tất cả các cột trong bảng cùng với giá trị của chúng, sau đó tôi thêm Mệnh đề WHERE truy vấn đọc như thế nàyselect * from wp_users where ID = @wpda_wp_user_id
nhưng thật lạ khi tôi thêm Mệnh đề WHERE không có bất kỳ dữ liệu nào . Đâu có thể là vấn đề?https. //prnt. sc/hL9isdtXtumZ
mong muốn được nghe từ bạn
Trình bắt đầu chủ đề mwambembela
[@mwambembela]
Và đây là cách tôi đã gán Giá trị Bộ phận cho Biến phiên của
@$dept
, nhưng ngay cả khi tôi sử dụng truy vấn Biến phiên của@$dept
thì nó cũng không trả lại kết quả gìadd_action[ 'wpda_dbinit', function[ $wpdadb ] { if [ null !== $wpdadb ] { $suppress_errors = $wpdadb->suppress_errors[ true ]; $current_user = wp_get_current_user[]; $wpdadb->query[ 'set @dept = "' . $current_user->Department . '"' ]; $wpdadb->suppress_errors[ $suppress_errors ]; } }, 10, 1 ];
Tác giả plugin Lập trình viên đầy nhiệt huyết Peter
[@peterschulznl]
Xin chào @mwambembela,
Bạn nhận được phản hồi gì trong Trình tạo truy vấn cho những truy vấn này
chọn * từ wp_users trong đó ID = @wpda_wp_user_id
chọn @wpda_wp_user_idĐối tượng $current_user không chứa biến Department. Vì vậy, hành động của bạn sẽ không hoạt động vì $current_user->Bộ phận không tồn tại. Trong trường hợp của bạn, bạn cần lấy giá trị đó từ một nguồn khác
Có lẽ bạn nên sửa vấn đề đầu tiên trước. Bạn đang sử dụng phiên bản DBMS nào?
Thanks,
PeterTrình bắt đầu chủ đề mwambembela
[@mwambembela]
Phản hồi tôi nhận được khi chạy truy vấn này
select * from wp_users where ID = @wpda_wp_user_id select @wpda_wp_user_id
trong Trình tạo truy vấn, thông báo cho biết
1add_action[ 'wpda_dbinit', function[ $wpdadb ] { if [ null !== $wpdadb ] { $suppress_errors = $wpdadb->suppress_errors[ true ]; $current_user = wp_get_current_user[]; $wpdadb->query[ 'set @dept = "' . $current_user->Department . '"' ]; $wpdadb->suppress_errors[ $suppress_errors ]; } }, 10, 1 ];
Nếu tôi cần lấy giá trị của $current_user từ một nguồn khác, làm cách nào để thực hiện điều đó, vui lòng tư vấn
Tôi đang sử dụng localhost với MySQL phiên bản 5. 2 nếu tôi không sai
Tác giả plugin Lập trình viên đầy nhiệt huyết Peter
[@peterschulznl]
Xin chào @mwambembela,
mysql 5. 2 là rất cũ. Có thể cho bạn để cập nhật? . 2 hỗ trợ các biến phiên?
Làm cách nào để chuyển biến giống như trong MySQL?
Sử dụng hàm CONCAT[], chúng ta có thể làm việc với biến người dùng trong mệnh đề LIKE . Cú pháp như sau. đặt @anyVariableName='anyValue'; .Làm cách nào để sử dụng toán tử like với biến trong SQL?
Cách sử dụng Toán tử Like với VARIABLE .Khai báo @Keywords varchar[50]đặt @Keywords = 'YourString'LỰA CHỌN *TỪ sản phẩmỞ ĐÂU [ID danh mục = @CategoryId] VÀ[Từ khóa Thích '%' + @Từ khóa + '%' ]%s và %D trong MySQL là gì?
%d – đối số được coi là số nguyên và được trình bày dưới dạng số thập phân [có dấu]. %s – đối số được coi là và được trình bày dưới dạng một chuỗi . trong các ví dụ của bạn, $slug là một chuỗi và $this->id là một số nguyên.Chúng ta có thể sử dụng like với in trong MySQL không?
Bạn có thể sử dụng LIKE với toán tử OR hoạt động giống như toán tử IN .