Tìm kiếm từ khóa PHP

Tìm kiếm một từ khóa trong bảng MySql có thể được thực hiện dễ dàng, nhưng việc tìm kiếm một từ khóa trong toàn bộ cơ sở dữ liệu luôn là một nhiệm vụ khó khăn

Hơn nữa, nó đã được coi là một nhu cầu phổ biến đối với nhiều ứng dụng web, đặc biệt đối với tìm kiếm nâng cao như chức năng

Tìm kiếm từ khóa PHP

Tìm kiếm một từ khóa trong toàn bộ cơ sở dữ liệu trong PHP

Cân nhắc vấn đề này, PHP đã giới thiệu một lớp mới, có tên là “searchEntireDB”

Chỉ cần đưa tệp này vào mã của bạn để thực hiện tìm kiếm một số từ hoặc một số trong toàn bộ cơ sở dữ liệu

Đây là mã cho lớp “searchEntireDB” được lưu dưới dạng searchEntireDB. php

tìm kiếmEntireDB. php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

<?php

 

class searchEntireDB {

được bảo vệ $_query;

được bảo vệ $_sql;

riêng tư   $_userName;

riêng tư   $_passWord;

riêng tư   $_dbName;

được bảo vệ $_tableName;

được bảo vệ $_kết nối;

được bảo vệ $_columnName;

được bảo vệ $_văn bản mục tiêu;

công khai $_FinalResult;

công khai $_báo cáo;

hàm công khai __construct($DB, $userName, $passWord, $columnName, $targetText) {

$này - >_dbName     = $DB;

$này - >_userName   = $userName;

$này - >_passWord   = $passWord;

$này - >_columnName    = $columnName;

$này - >_văn bản mục tiêu = $targetText;

thử {

$này - >_kết nối = new PDO('mysql: host = localhost; dbname = ' . $này - >_dbName, $this->_userName, $this->_passWord);

         $này - >_connection -> exec("SET SESSION collation_connection = 'utf8_general_ci';");

$này - >_kết nối -> exec("SET CHARACTER SET 'utf8';");

$này - >_kết nối -> exec("set names utf8");

}//thử

bắt( Ngoại lệ $e ) {

die('Lỗi kết nối. ');

}//bắt

searchEntireDB. . searchDB();

}// __construct()

hàm công khai searchDB() {

$này - >_sql = 'SHOW TABLES FROM ' . $này - >_dbName;

$này - >_query = $this->_connection->query($this->_sql);

$này - >_tableName = $this->_query->fetchAll();

$số bàn = số lượng($this->_tableName);

cho ( $i = 0; $i <= $tableNumber - 1; $i++ ) {

$sql2 = "CHỌN * TỪ " . $này - >_dbName . . ". " . $này - >_tableName[$i][0];

$query2 = $this->_connection->query($sql2);

$tìm nạp = $truy vấn2->fetchAll();

$tempDBName = $này->_tableName[$i][0];

if ( trống($fetch) ) {

 

$này - >_báo cáo['emptyDBs'][] = $tempDBName;

}// nếu DB này trống

khác {

$thisArrayIndexes = count($fetch);

foreach ( $tìm nạp as $key=>$value ) {

if ( is_array($value) ) {

 

foreach ( $giá trị as $column=>$fieldValue ) {

if ( $this - >_columnName ! = NULL ) {

 

$pos = strpos($fieldValue,$this->_targetText);

if ( $cột == $this->_columnName && $pos !== false ) {

$this->_reports['result'][$tempDBName][$column] = $fieldValue;

$này - >_FinalResult[] = array('DBName'=>$tempDBName, 'ColumnFoundMatch'=>$column, 'searchedFor'=>$fieldValue);

}//Lớp cuối cùng

}//if ( $this->_columnName. = NULL

khác {

if ( strpos($fieldValue,$this->_targetText) ! == false ) {

if ( is_int($column) ) {

tiếp tục;

}//ngăn chặn bao gồm các khóa số nguyên trong báo cáo và kết quả

khác {

$này - >_báo cáo['result'][$tempDBName][$column] = $fieldValue;

$này - >_FinalResult[] = array('DBName'=>$tempDBName, 'ColumnFoundMatch'=>$column, 'searchedFor'=>$fieldValue);

}

}//Lớp cuối cùng khi Tên cột là Null

}//IF $this->_columnName ( is )--> NULL

}//foreach ( $value as $column=>$fieldValue

}//if ( is_array($value

}//oreach ( $fetch as $key=>$value

$này - >_báo cáo['notEmpty'][] = $tempDBName;

 

}//else

}//cho

return $this - >_reports;

return $this - >_finalResult;

}//searchDB()

}//tìm kiếm lớpEntireDb

Và đây là mã ví dụ, cho thấy việc sử dụng lớp trên

1

2

3

4

5

6

require_once 'searchEntireDB. php';

$obj = mới searchEntireDB('Database name','username','password',NULL,'keyword');

echo ";

print_r($obj);

?>

Điều quan trọng là đề cập ở đây, bạn sẽ thấy kết quả như thế nào

Dưới đây là ảnh chụp nhanh kết quả tìm kiếm, sẽ giúp bạn hiểu kết quả

Tìm kiếm từ khóa PHP

1 -> result = tên mảng chứa kết quả khớp. Nếu mảng kết quả bị thiếu, nó chỉ ra rằng không tìm thấy kết quả phù hợp cho từ khóa đã cho.
2 -> người dùng = tên của bảng chứa các bản ghi khớp
3, 4 -> mã định danh, tên = các cột của bảng người dùng chứa các giá trị khớp . = các giá trị phù hợp
5, 6 -> JohnC, John C. = the matched values

Ngoài ra với lớp hữu ích của anh ấy, bạn cũng có thể tìm thấy các bảng trống và không trống trong cơ sở dữ liệu được tìm kiếm, dẫn đến dạng mảng emptyDBs và notEmpty tương ứng

Làm cách nào để tìm kiếm nhiều từ khóa trong PHP?

php $queried="abc,test, testing"; .

Làm cách nào để tìm kiếm bằng PHP?

php $query = $_GET['truy vấn'];

Làm cách nào để tạo tìm kiếm tùy chỉnh trong PHP?

Tạo Biểu mẫu Công cụ Tìm kiếm trong HTML . action= “search. php” — hành động của biểu mẫu là đích đến của mục tiêu cuối cùng. Đây sẽ là vị trí của tập lệnh PHP sẽ thực hiện tất cả các thao tác tìm kiếm. method=“get” — loại phương thức GET là thứ sẽ lấy văn bản được nhập vào hộp văn bản và ném nó vào url cho người dùng.

Làm cách nào để tạo một thanh tìm kiếm trong PHP?

Thiết lập cơ sở dữ liệu . Open XAMPP and Start Apache and MySQL. Nhấp vào “Mới”. Tạo một cơ sở dữ liệu có tên là “autocomplete” (hoặc bất cứ thứ gì bạn muốn gọi nó). Sao chép và dán truy vấn sau để tạo Bảng (tìm kiếm), Tên cột (Id, Name), sau đó chèn dữ liệu giả.