Php tải xuống mã nguồn từ url

Có một công cụ tìm kiếm cho trang web của bạn là điều khá quan trọng đối với web ngày nay. Nếu người dùng của bạn không thể tìm kiếm nội dung trên trang web của bạn, thì rất khó để khiến họ xem thêm những gì bạn cung cấp. May mắn thay, thật dễ dàng và nhanh chóng để tạo một công cụ tìm kiếm đơn giản với cơ sở dữ liệu PHP, HTML và MySQL. Tất cả đều có video hướng dẫn đi kèm. Ngoài ra, bản tải xuống mã nguồn mở miễn phí cũng có sẵn tại đây

Video Hướng dẫn Công cụ Tìm kiếm Đơn giản

Video hướng dẫn này về cách tạo một công cụ tìm kiếm đơn giản trong PHP có hai phần

  • Phần 1. https. //youtube. be/B-ywDE8tBeQ (cách tạo một công cụ tìm kiếm đơn giản)
  • Phần 2. https. //youtube. be/BV3hHeGrxd8 (cách thêm các mục mới vào cơ sở dữ liệu của công cụ tìm kiếm)

Hướng dẫn php này có bản tải xuống mã nguồn mở MIỄN PHÍ.
Tải mã nguồn xuống

Phong cách cho Công cụ Tìm kiếm (với CSS)

Để đơn giản, tôi sẽ không tập trung vào cách tạo một màn hình ưa thích cho công cụ tìm kiếm. Tôi sẽ sử dụng một biểu định kiểu CSS được tạo sẵn mà tôi đã sẵn sàng sử dụng, có tên là chính. css. Vì vậy, theo cách này, chúng ta có thể tìm hiểu sâu về mã PHP.
(Biểu định kiểu sẽ được bao gồm trong phần tải xuống mã nguồn ở trên).

Tạo Biểu mẫu Công cụ Tìm kiếm

Mã quan trọng cần lưu ý từ biểu mẫu là tất cả trong thuộc tính biểu mẫu và thuộc tính hộp văn bản

  • hành động =”. /mục lục. php” – hành động của biểu mẫu là đích đến cuối cùng. Đây sẽ là vị trí của tập lệnh sẽ thực hiện tất cả việc xử lý mã. Đối với công cụ tìm kiếm của chúng tôi, chỉ mục. php sẽ là tệp duy nhất chúng tôi đang làm việc với. Và do đó, chúng tôi sẽ làm cho tập lệnh gửi yêu cầu url trở lại chính nó
  • 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. Giống như khi bạn thấy “tìm kiếm. php?k=php+tutorial” (với dấu cộng là phần giữ chỗ cho khoảng trắng). Đó là yêu cầu GET được chuyển vào URL
  • input type=”text” – kiểu “text” chỉ đơn giản là làm điều đó, biến đầu vào thành kiểu nhập văn bản (tôi biết là điên rồi)
  • name=”k” – “tên” có thể là bất cứ thứ gì bạn muốn. Hãy nhớ rằng nó sẽ hiển thị trong trình duyệt của người dùng, giống như ví dụ trên. Vì vậy, thường url ngắn hơn là tốt hơn
  • value=”” – có giá trị là “” (trống) sẽ làm cho hộp văn bản luôn trống khi người dùng nhìn thấy lần đầu. Nó không thực sự cần thiết, nhưng nó giúp mọi thứ sạch sẽ hơn một chút

Hãy xem cái này.   Cách cài đặt WordPress trên Localhost bằng XAMPP

Với biểu định kiểu của chúng tôi và phần còn lại của biểu mẫu đã được thiết lập, chúng tôi thấy biểu mẫu tìm kiếm cơ bản của mình được hiển thị bên dưới. Khá hấp dẫn nhỉ?

Php tải xuống mã nguồn từ url
Php tải xuống mã nguồn từ url

Tạo cấu trúc cơ sở dữ liệu công cụ tìm kiếm (sử dụng MySQL/phpMyAdmin)

Tiếp theo, chúng tôi sẽ thiết lập cấu trúc cơ sở dữ liệu SQL phía sau cho công cụ tìm kiếm. Vì công cụ tìm kiếm của chúng tôi đơn giản nên cơ sở dữ liệu MySQL của chúng tôi cũng sẽ đơn giản. Chỉ cần một vài trường để lưu trữ dữ liệu của chúng tôi. Để tạo cơ sở dữ liệu và bảng, tôi thích sử dụng phpMyAdmin để quản lý phụ trợ cơ sở dữ liệu MySQL

Các trường cơ sở dữ liệu chúng ta sẽ cần

Sau đây là danh sách các trường cơ sở dữ liệu MySQL mà chúng tôi sẽ cần cho công cụ tìm kiếm của mình

  • một trường id duy nhất để dễ dàng truy cập thông tin trong cơ sở dữ liệu
  • tiêu đề của trang web mà người dùng có thể tìm kiếm
  • url mà nó sẽ hướng họ đến
  • một lời giới thiệu hoặc mô tả nhỏ hay về những gì trang web làm
  • và các từ khóa có thể được sử dụng để tìm kiếm các bản ghi riêng lẻ

Điều quan trọng cần lưu ý là trường id phải được đặt thành tự động tăng và khóa chính. Làm điều này cho phép chúng tôi có một mã định danh duy nhất tăng dần tự động cho mỗi bản ghi trong cơ sở dữ liệu. Nó cũng cho phép các truy vấn chúng tôi chạy đối với cơ sở dữ liệu nhanh hơn nhiều

Php tải xuống mã nguồn từ url
Php tải xuống mã nguồn từ url

Giờ thì giao diện người dùng và cơ sở dữ liệu đã sẵn sàng, chúng ta có thể chuyển sang phần thú vị của tập lệnh công cụ tìm kiếm thực tế. Mã để vận hành công cụ tìm kiếm sẽ có một vài phần. Trước tiên, chúng tôi cần lấy các từ khóa mà người dùng đã tìm kiếm và định dạng chúng để chúng tôi sử dụng. Sau đó, chúng ta có thể kết nối với cơ sở dữ liệu và chạy truy vấn. Và cuối cùng, chúng tôi có thể hiển thị lại kết quả tìm kiếm cho người dùng

Nhận từ khóa công cụ tìm kiếm

// get the search terms from the url
$k = isset($_GET['k']) ? $_GET['k'] : '';

// create the base variables for building the search query
$search_string = "SELECT * FROM search_engine WHERE ";
$display_words = "";
					
// format each of search keywords into the db query to be run
$keywords = explode(' ', $k);			
foreach ($keywords as $word){
	$search_string .= "keywords LIKE '%".$word."%' OR ";
	$display_words .= $word.' ';
}
$search_string = substr($search_string, 0, strlen($search_string)-4);
$display_words = substr($display_words, 0, strlen($display_words)-1);

Chúng tôi bắt đầu bằng cách tạo một số biến mà chúng tôi sẽ dựa vào cho tập lệnh

Bắt đầu xây dựng truy vấn tìm kiếm

$k… – sử dụng câu lệnh boolean lồng nhau, chúng tôi có thể đảm bảo rằng url đang cung cấp cho chúng tôi các từ khóa tìm kiếm để sử dụng. Nhận đầu vào từ người dùng bằng phương pháp này giúp không gửi lại lỗi cho các biến không xác định cho người dùng

$search_string… – chúng tôi đặt cơ sở của truy vấn để chạy đối với cơ sở dữ liệu

Hãy xem cái này.   Gửi email HTML bằng php từ máy chủ cục bộ bằng SendMail

$display_words… – chỉ cần tạo một chuỗi rỗng để sử dụng sau này. Cụ thể để hiển thị phiên bản được định dạng của những gì người dùng đã tìm kiếm lại cho họ

Thêm từng từ khóa vào chuỗi tìm kiếm

$keywords… – sử dụng hàm phát nổ, chúng ta có thể lấy một chuỗi bình thường và biến nó thành một mảng có cùng dữ liệu. Sử dụng một mảng làm cho các tác vụ như tìm kiếm từng câu một trở nên rất dễ dàng. Tham số đầu tiên là chuỗi mà bạn muốn ngắt tại. Trong trường hợp của chúng tôi, chúng tôi đang tách tất cả các từ khóa thành các từ riêng lẻ. Tham số tiếp theo là câu bạn muốn chia nhỏ (e. g. biến $k)

foreach… – bằng cách sử dụng câu lệnh foreach, chúng tôi có thể nhanh chóng phân tích cú pháp từng mục ra khỏi mảng $keywords một cách dễ dàng và không cần thêm thông tin nhảm nhí nào. Chúng tôi có thể tách từng phần tử mảng thành một phần tử riêng biệt. Sau đó lưu trữ nó trong một biến có thể được xử lý theo cách đệ quy

$search_string… – chúng tôi đang lấy từng $word từ $keywords. Sau đó, định dạng chúng thành chuỗi truy vấn của chúng tôi mà sau này chúng tôi có thể tìm kiếm cơ sở dữ liệu. Sau đó, sử dụng lệnh truy vấn LIKE, chúng ta có thể tìm kiếm các chuỗi trong trường cơ sở dữ liệu của từ khóa. Và bằng cách sử dụng % (dấu phần trăm) ở bên trong dấu ngoặc kép, truy vấn sẽ tìm kiếm từ $ của chúng tôi ở bất kỳ vị trí nào trong cơ sở dữ liệu. Đây là điều kỳ diệu thực sự của công cụ tìm kiếm ngay tại đây

Hai dòng cuối cùng chỉ để xóa các ký tự thừa khỏi biến $search_string và $display_words. Điều này giúp định dạng đúng chúng cho truy vấn và hiển thị lại cho người dùng

Hãy xem truy vấn MySQL trông giống như

Nếu chúng tôi lặp lại truy vấn mới tạo của mình sau khi tìm kiếm thứ gì đó chẳng hạn như “nickfrosty”, chúng tôi sẽ thấy nội dung như thế này

SELECT * FROM search_engine WHERE keywords LIKE '%nickfrosty%' 

Kết nối với cơ sở dữ liệu MySQL và xử lý truy vấn

// connect to the database
$conn = mysqli_connect("localhost", "root", "password", "tutorials");

// run the query in the db and search through each of the records returned
$query = mysqli_query($conn, $search_string);
$result_count = mysqli_num_rows($query);

// display a message to the user to display the keywords
echo '
'.number_format($result_count).' results found
'; echo 'Your search for "'.$display_words.'"
';

Bây giờ chúng tôi đã xây dựng truy vấn của mình, chúng tôi cần kết nối với máy chủ SQL và chọn cơ sở dữ liệu. Chúng tôi sẽ tiếp tục và chạy chuỗi truy vấn đối với cơ sở dữ liệu. Chúng tôi cũng nhận được số hàng được trả về từ việc làm như vậy

Nếu bạn muốn tìm hiểu thêm về một số lệnh php và MySQL và cách chúng hoạt động, hãy xem hướng dẫn của tôi tại đây. Nó bao gồm tất cả những kiến ​​thức cơ bản về hoạt động của PHP và MySQL/MySQLi

Hiển thị Kết quả của Công cụ Tìm kiếm cho Người dùng

Bây giờ chúng tôi có tất cả các kết quả cơ sở dữ liệu của mình, chúng tôi có thể bắt đầu hiển thị các kết quả đó cho người dùng. Để dễ dàng cho html, chúng tôi sẽ chỉ hiển thị chúng ở định dạng bảng đơn giản

// check if the search query returned any results
if ($result_count > 0){

	// display the header for the display table
	echo '';
	
	// loop though each of the results from the database and display them to the user
	while ($row = mysqli_fetch_assoc($query)){
		echo '';
	}
	
	// end the display of the table
	echo '';
}
else
	echo 'There were no results for your search. Try searching for something else.';

Trước tiên hãy kiểm tra để đảm bảo rằng có một số kết quả được trả về từ cơ sở dữ liệu và hiển thị kết quả tương ứng

Hãy xem cái này.   Tạo biểu mẫu đăng ký đơn giản bằng PHP

Sử dụng vòng lặp while, bạn có thể phân tích từng kết quả được trả về từ truy vấn tìm kiếm mà chúng tôi đã thực hiện trước đó. Biến $row lưu trữ từng bản ghi riêng lẻ trên mỗi lần đi qua vòng lặp. Các kết quả này được lưu trữ dưới dạng một mảng kết hợp mà chúng ta có thể xử lý hoặc hiển thị. Về cơ bản, điều này có nghĩa là chúng tôi sẽ có thể xử lý/định dạng/hiển thị từng kết quả được trả về trên cơ sở từng cái một. Mỗi cái được lưu trữ trong cùng một biến $row

Nếu bạn muốn tìm hiểu thêm về cách thức hoạt động của hàm mysqli_fetch_assoc, bạn có thể xem bài viết của tôi về những điều cơ bản về MySQL

Sau đó, chúng ta có thể xem xét từng trường của bản ghi cơ sở dữ liệu bằng cách truy xuất chúng từ mảng kết hợp. Để đơn giản, tôi sẽ hiển thị từng kết quả trong một bảng gọn gàng. Sau đó, hãy để biểu định kiểu của tôi làm cho chúng dễ nhìn hơn một chút

Đặt tất cả lại với nhau và bạn nhận được gì?

Bây giờ chúng tôi có một công cụ tìm kiếm đang hoạt động. Dưới đây là những gì sẽ được hiển thị nếu bạn tìm kiếm “php”. Chỉ hiển thị thành công các kết quả bao gồm cụm từ tìm kiếm, giống như bất kỳ công cụ tìm kiếm tốt nào

Php tải xuống mã nguồn từ url
Php tải xuống mã nguồn từ url

Bạn có thích nó không?

  • Nhấp để chia sẻ trên Twitter (Mở trong cửa sổ mới)
  • Bấm để chia sẻ trên Facebook (Opens in new window)
  • Nhấp để chia sẻ trên LinkedIn (Mở trong cửa sổ mới)
  • Nhấp để chia sẻ trên Reddit (Mở trong cửa sổ mới)
  • Nhấp để chia sẻ trên Tumblr (Mở trong cửa sổ mới)
  • Nhấp để chia sẻ trên Pinterest (Mở trong cửa sổ mới)
  • Nhấp để chia sẻ trên WhatsApp (Mở trong cửa sổ mới)
  • Nhấp để gửi email này cho bạn bè (Mở trong cửa sổ mới)

Như thế này

Thích Đang tải.

Hướng dẫn và bài viết liên quan

công cụ tìm kiếm php

Sửa đổi lần cuối. Ngày 6 tháng 12 năm 2022

Php tải xuống mã nguồn từ url
Câu chuyện trước.
Cách di chuyển trang web của bạn từ máy chủ này sang máy chủ khác

Php tải xuống mã nguồn từ url
Câu chuyện tiếp theo.
Cách cài đặt WordPress trên Localhost bằng XAMPP

Giới thiệu về Tác giả / Nick

Luôn yêu thích việc giảng dạy và giúp đỡ người khác, Nick đã tạo ra HeyTuts vào năm 2015. Bắt đầu sự nghiệp trên YouTube của mình bằng cách tạo các hướng dẫn lập trình dành cho nhà phát triển web, HeyTuts đã mở rộng sang nhiều danh mục liên quan đến công nghệ khác

37 trả lời cho “Tạo một công cụ tìm kiếm đơn giản với PHP (tải xuống mã nguồn mở)”

  1. Mrinmoy nói.

    Này Nick, cảm ơn vì hướng dẫn tuyệt vời này. Nhưng liên kết tải xuống tệp dự án không hoạt động. Bạn có thể vui lòng cung cấp một liên kết thích hợp để tải xuống tệp dự án

    Đang tải

    • Nick nói.

      Cảm ơn cho những người đứng đầu lên. Tôi vừa sửa liên kết trong bài đăng. Mã nguồn có sẵn ở đây. https. //www. heytuts. com/download/simple-search-engine-source-code/

      Đang tải

      • Đấng vĩ đại nói.

        Cảm ơn nick rất nhiều. Bạn thật tuyệt vời

        Đang tải

        • Nick nói.

          Cảm ơn những lời tốt đẹp

          Đang tải

  2. abhishek nói.

    tại sao tôi gặp lỗi ở dòng số 70, chỉ mục. tập tin php

    Đang tải

    • Nick nói.

      Không chắc. Gửi cho tôi một bản sao của tệp mà bạn đang gặp sự cố và tôi có thể xem qua nó 🙂

      Đang tải

  3. nói.

    Xin chào Nick, tôi muốn hỏi tại sao mã nguồn rất khác với video youtube của bạn về cách tạo công cụ tìm kiếm. Chúng tôi hiện đang cố gắng theo dõi video youtube của bạn và sử dụng mã nguồn bạn cung cấp. Chúng tôi liên tục gặp lỗi và mong được hướng dẫn thêm về mã nguồn hoặc video youtube gốc mà bạn đã thực hiện

    Đang tải

    • Nova Andre Saputra nói.

      Tôi nghĩ, mã không khác nhau 😕 có thể bạn có thể kiểm tra lại chúng

      Đang tải

      • Nick nói.

        Mã được sử dụng là khác nhau. Tôi đang trong quá trình cập nhật bài viết, video và tải xuống mã nguồn. Bây giờ tất cả đều giống nhau 🙂

        Đang tải

    • Nick nói.

      Nó phụ thuộc vào video bạn đang xem trên YouTube. Mã nguồn và bài viết này dành cho hướng dẫn Công cụ tìm kiếm được cập nhật mà tôi đã tạo vào tháng 1 năm 2020. Hãy chắc chắn rằng bạn đang xem các video được cập nhật

      Đang tải

  4. Pingback WordPress và mọi thứ bạn nên biết - HeyTuts nói.

    […] https. //www. heytuts. com/web-dev/php/simple-search-engine-in-php […]

    Đang tải

  5. Samer Houri nói.

    với tư cách là Mrinmoy
    Xin chào Nick, cảm ơn vì hướng dẫn tuyệt vời này. Nhưng liên kết tải xuống tệp dự án không hoạt động. Bạn có thể vui lòng cung cấp một liên kết thích hợp để tải xuống tệp dự án. Tương tự

    Đang tải

    • Nick nói.

      Tôi đã kiểm tra lại liên kết trên máy tính của mình và không gặp vấn đề gì với nó. Điều gì xảy ra khi bạn nhấp vào nó?

      Đang tải

  6. Quốc vương Rustamov nói.

    Xin chào Nick, cảm ơn vì đã hướng dẫn nhưng tôi không thấy liên kết tải xuống mã nguồn, vui lòng để lại tại đây

    Đang tải

    • Nick nói.

      của bạn đây. Tôi sẽ xem xét để đảm bảo rằng các liên kết đang tải đúng cách trên các trang của bài viết. https. //www. heytuts. com/download/simple-search-engine-source-code/

      Đang tải

  7. Josiah Boziah nói.

    Cảm ơn bạn hướng dẫn tuyệt vời. Mình đang làm website âm nhạc, mình muốn tạo search để tìm kiếm tất cả các trang người dùng chỉ cần gõ tên ca sĩ hoặc tên bài hát vào tìm kiếm là nó sẽ trả về tất cả các bài hát liên quan đến nghệ sĩ đó hoặc bài hát cụ thể mà người dùng yêu cầu . Làm cách nào tôi có thể thêm chức năng đó vào hướng dẫn tìm kiếm của bạn?

    Đang tải

    • Nick nói.

      Điều đó khá dễ dàng để điều chỉnh công cụ tìm kiếm đơn giản này.
      Đầu tiên, tôi sẽ tạo một bảng mới cho nghệ sĩ. Cung cấp cho nó một số trường như ID nghệ sĩ và tên nghệ sĩ. Sau đó, tạo một bảng khác cho các album, cung cấp cho nó các trường như ID nghệ sĩ, tên album, ảnh bìa album, ngày phát hành và bất kỳ thông tin nào khác mà bạn muốn hiển thị.
      Tiếp theo, tạo một bảng có tên bài hát với các trường như ID album, tên bài hát, v.v.

      Lưu ý cách mỗi bảng có trường ID cho phần cao hơn tiếp theo của phân cấp âm nhạc. Bài hát có ID album. Album có ID nghệ sĩ. Đó là cách bạn liên kết tất cả thông tin lại với nhau trong cơ sở dữ liệu.
      Sau đó, trong chuỗi truy vấn tìm kiếm, bạn có thể tìm tên bài hát. Kết quả bài hát sẽ cung cấp cho bạn ID album, bạn có thể sử dụng ID này để nhận tất cả các bài hát khác từ album hoặc nghệ sĩ đó.

      Có ý nghĩa?

      Đang tải

  8. Josiah Boziah nói.

    Tôi đã nhận được phản hồi của bạn qua email, tôi không thấy nhận xét của mình ở đây. Nhưng nó liên quan đến việc người dùng tìm kiếm tất cả các trang trên trang web của tôi cho bài hát của tôi, câu hỏi đặt ra là tôi có cần nhập tất cả nghệ sĩ & bài hát vào Cơ sở dữ liệu không?

    Đang tải

    • Nick nói.

      Thật kỳ lạ, bình luận vẫn được liệt kê. Kỳ dị. Dù sao….
      Có, bạn sẽ phải nhập tất cả thông tin về nghệ sĩ và bài hát vào cơ sở dữ liệu. Trừ khi bạn có thể tìm thấy một số cơ sở dữ liệu mà bạn có thể tải xuống đã có cơ sở dữ liệu bạn muốn

      Đang tải

  9. Joe Cardamone nói.

    Xin chào Nick, cảm ơn vì hướng dẫn tuyệt vời. Tất cả đã diễn ra tốt đẹp với mã hóa và tải xuống.
    Xin hỏi một câu, tôi đã thêm một trường vào bảng của mình có tên là “sắp xếp” vì tôi muốn sắp xếp kết quả dựa trên loại kết quả (ví dụ: trang html v’s pdf).
    Làm cách nào tôi có thể giới thiệu một cách sắp xếp trong mã? .
    Cảm ơn,
    Joe

    Đang tải

    • Nick nói.

      Chào joe. Câu hỏi hay. Bạn chỉ đang cố sắp xếp thông tin trên trang đang được hiển thị cho người dùng phải không? . Sau đó, trong mã php nơi bạn tự tạo truy vấn tìm kiếm (biến $search_string), hãy thêm lệnh SQL của bạn để thực hiện kiểu sắp xếp mong muốn, sử dụng câu lệnh if. Vì vậy, đối với ví dụ về tệp pdf, tôi sẽ viết một cái gì đó như thế này

      if ($_GET['sort'] == 'pdf')
      $search_string .= ' AND url LIKE '%.pdf' ';
      // the % sign at the beginning means the url must end with ".pdf" but can have any other text at the beginning

      Mặt khác, để điều này hoạt động, bạn sẽ phải bọc toàn bộ phần từ khóa của chuỗi tìm kiếm truy vấn trong ngoặc đơn. Đó là bởi vì SQL sẽ tuân theo thứ tự các phép toán, giống như toán học

      Vì vậy, khi tất cả đã được nói và làm xong, truy vấn SQL của bạn sẽ giống như thế này (giả sử bạn tìm kiếm “tên người” bằng loại “PDF”).
      “CHỌN * TỪ search_engine WHERE (từ khóa THÍCH ‘%person%’ HOẶC từ khóa THÍCH ‘%name%’) VÀ url THÍCH ‘%. pdf’ “

      Đang tải

  10. Joe Cardamone nói.

    Cảm ơn Nick đã trả lời nhanh. Tôi có thể dành thêm chút thời gian của bạn để giải thích thêm được không?

    Cơ sở dữ liệu của tôi là.
    id từ khóa url tiêu đề Sắp xếp
    1 một http. xin chào 3
    2 hai http. x xin chào 1
    3 ba http. xin chào 2
    4 bốn http. z tạm biệt 1

    Vì vậy, nếu chúng ta tìm kiếm với từ khóa “xin chào”, kết quả hiển thị là

    hai http. x xin chào 1
    ba Http. xin chào 2
    một http. xin chào 3

    Tôi không cần người dùng có thể sắp xếp các kết quả này, chỉ để hiển thị theo thứ tự tôi muốn

    Hy vọng bạn có thể hỗ trợ

    Cảm ơn

    Joe

    Đang tải

    • Nick nói.

      Ahhh tôi hiểu ý bạn rồi. Điều đó thậm chí còn dễ dàng hơn những gì tôi nghĩ trước đây. Bạn có thể sử dụng lệnh SQL tích hợp “ORDER BY”.
      Ở cuối $search_string, bạn cần thêm lệnh “ORDER BY” và sau đó khai báo nếu bạn muốn sắp xếp thứ tự tăng dần (còn gọi là 1,2,3 bằng cách sử dụng “ASC”) hoặc giảm dần .

      Vì vậy, truy vấn SQL của bạn sẽ xuất hiện giống như thế này.
      “CHỌN * TỪ công cụ tìm kiếm WHERE (từ khóa THÍCH ‘%person%’ HOẶC từ khóa THÍCH ‘%name%’) ĐẶT HÀNG THEO Sắp xếp MÔ TẢ”

      Và đó là nó

      Đang tải

      • Joe Cardamone nói.

        Cảm ơn Nick, rất tiếc là tôi không thể làm việc này.
        Mã của tôi giống như mã của bạn ở trên, có thêm () xung quanh các từ khóa và ĐẶT HÀNG THEO 'sắp xếp' ở cuối.

        // KIỂM TRA XEM CÁC TỪ KHÓA CÓ ĐƯỢC CUNG CẤP KHÔNG
        if (isset($_GET[‘k’]) && $_GET[‘k’]. = ”){
        // lưu từ khóa từ url
        $k = trim($_GET['k']);
        // create a base query and words string
        $query_string = “SELECT * FROM search_engine WHERE “;
        $display_words = “”;
        // seperate each of the keywords
        $keywords = explode(‘ ‘, $k);
        foreach($keywords as $word){
        $query_string .= ” (keywords LIKE ‘%”.$word.”%’) OR “;
        $display_words. = $từ. ” ĐẶT HÀNG THEO 'sắp xếp' “;
        }
        $query_string = substr($query_string, 0, strlen($query_string) – 3) ;

        tuy nhiên khi tôi lặp lại $query_string tôi nhận được

        Tìm kiếm

        CHỌN * TỪ công cụ tìm kiếm WHERE (từ khóa THÍCH '%bio%') HOẶC (từ khóa THÍCH '%sal%')
        Tìm thấy 182 kết quả
        Your search for bio ORDER BY ‘sort’ sal ORDER BY ‘sort’

        Bất kỳ trợ giúp đánh giá rất cao

        Đang tải

        • Nick nói.

          Tôi nghĩ rằng tôi thấy vấn đề của bạn. Bạn đã thêm lệnh “ĐẶT HÀNG” vào biến $display_words. Không phải biến $query_string như bạn nên làm. Thử cái này

          $query_string = substr($query_string, 0, strlen($query_string) – 3);
          $query_string. = ” ĐẶT HÀNG BẰNG ‘sắp xếp’ DESC”;

          Và xóa nội dung “ORDER BY” khỏi biến $display_words bên trong câu lệnh if

          Đang tải

          • Joe Cardamone nói.

            Cảm ơn Nick, tôi nghĩ giờ chúng ta đã thân nhau. Tôi có đoạn mã sau.
            $query_string = substr($query_string, 0, strlen($query_string) – 3);
            $query_string. = ” ORDER BY 'sort' DESC”;
            Tuy nhiên, ở dòng thứ hai, tôi gặp thông báo “Lỗi cú pháp, T_STRING không mong đợi”
            Bạn có ý kiến ​​gì không?

            Đang tải

  11. Joe Cardamone nói.

    Nixk, đã thêm khoảng trắng sau =
    $query_string. = ” ĐẶT HÀNG BẰNG ‘sắp xếp’ DESC”;
    Tất cả đều ổn. Cảm ơn bạn đã giúp đỡ. Nhiều đánh giá cao.

    Đang tải

    • Nick nói.

      vâng anh bạn. Tôi biết chúng tôi sẽ đạt được điều đó

      Đang tải

  12. Godwin nói.

    Cảm ơn Nick

    Đang tải

  13. Kayla nói.

    Xin chào Nick,
    Cảm ơn bạn vì hướng dẫn tuyệt vời này và nó hoạt động rất tốt.
    Tôi sử dụng nó để tìm kiếm một số nội dung trong bảng tin tức của cơ sở dữ liệu của mình.
    Tôi muốn tìm kiếm cả tiêu đề không chỉ nội dung.
    Bây giờ tôi có cái này.
    $query_string = “CHỌN * TỪ tin tức WHERE “;
    $display_words = “”;

    // tách riêng từng từ khóa
    $content = phát nổ(' ', $k);
    foreach($content as $word) . = ” nội dung THÍCH ‘%”. $từ. ”%’ HOẶC “;
    $query_string .= ” content LIKE ‘%”.$word.”%’ OR “;
    $display_words. = $từ. ” “;
    }
    Trong bảng tin tức của tôi, tôi có , id, tiêu đề, nội dung và ngày tháng và tôi muốn công cụ tìm kiếm tìm kiếm từ trong tiêu đề . Bạn có thể vui lòng giúp tôi việc đó không?

    Đang tải

    • Nick nói.

      Rất vui vì bạn thích hướng dẫn này. Bạn thực sự có thể làm điều đó siêu dễ dàng. Trong “$query_string của bạn. = …. ” bên trong vòng lặp foreach, bạn chỉ cần thêm trường cơ sở dữ liệu khác mà bạn muốn truy vấn tìm kiếm.
      $query_string. = ” nội dung THÍCH ‘%”. $từ. ”%’ HOẶC tiêu đề THÍCH ‘%”. $từ. ”%’ OR “;
      Điều đó sẽ giúp bạn hoàn thành công việc. Nếu bạn muốn cả 'nội dung' và 'tiêu đề' đều có từ bên trong (và chỉ trả về kết quả đó) thì bạn có thể bọc các cụm từ tìm kiếm bên trong dấu ngoặc đơn rồi thay đổi từ 'HOẶC' ở giữa thành ' .
      Thích cái này.
      $query_string. =” (nội dung THÍCH ‘%”. $từ. ”%’ VÀ tiêu đề THÍCH ‘%”. $từ. ”%’) OR “;
      Chú ý các vị trí cụ thể của dấu ngoặc đơn. Dấu ngoặc đơn đóng phải ở trước 'HOẶC' cuối cùng, nếu không thì truy vấn sẽ không tìm kiếm chính xác.
      Hy vọng điều này sẽ hữu ích 🙂

      Đang tải

      • Kayla nói.

        Cảm ơn Nick
        bạn là tuyệt nhất.

        Đang tải

  14. MichelZeub nói.

    Xin chào, biểu mẫu để thêm các mục mới vào cơ sở dữ liệu của công cụ tìm kiếm không hoạt động

    Đang tải

    • Nick nói.

      Bạn đã tự gõ nó hay bạn đang sử dụng mã tải xuống?

      Đang tải

  15. Schiano Francesco nói.

    Xin chúc mừng, hướng dẫn tuyệt vời, tôi đã tìm kiếm trên mạng trong nhiều ngày mà không tìm thấy công cụ nào không giết máy chủ và chạy vào giới hạn bộ nhớ, công cụ của bạn hoạt động rất tốt. Thật không may, tôi có hàng nghìn bản ghi và khi tìm kiếm tìm thấy hàng trăm kết quả, nó sẽ liệt kê tất cả chúng, làm cách nào để điều chỉnh phân trang 10 kết quả trên mỗi trang? . Cảm ơn bạn

    Đang tải

  16. hanelyp nói.

    Một ví dụ tuyệt vời về cách KHÔNG lập trình công cụ tìm kiếm

    Bạn sử dụng mysqli. PDO mới hơn được ưa thích hơn nhiều. Nếu bạn phải sử dụng giao diện cũ hơn, ít nhất hãy thoát khỏi các tham số truy vấn một cách chính xác để ngăn chặn cuộc tấn công SQL injection

    $query_string. = ” nội dung THÍCH ‘%”. $từ. ”%’ OR “;
    Truy vấn được xây dựng ở trên sẽ yêu cầu quét bảng, hay còn gọi là CHẬM. Không có cách nào để lập chỉ mục mySQL (hoặc theo hiểu biết của tôi về bất kỳ cơ sở dữ liệu chung nào) để tránh điều đó. Nó sẽ hoạt động đối với một cơ sở dữ liệu nhỏ với tải nhẹ, nhưng sẽ nhanh chóng bị lỗi khi cơ sở dữ liệu phát triển.

    Đang tải

    • Nick nói.

      Bạn đang nói rất nhiều điều đúng sự thật ở đây

      Bài viết này ban đầu được viết khoảng 5 năm trước để trình bày ý tưởng cơ bản về việc tạo một công cụ tìm kiếm. Vì vậy, vâng, nó sử dụng MySQLi (ban đầu được viết bằng các hàm MySQL thậm chí còn cũ hơn. ) Tôi thực sự cần cập nhật nó cho pdo, chỉ là chưa có thời gian

      Như tôi đã nêu trong bài viết, điều này hoàn toàn không xử lý bảo mật và không nên được sử dụng trong hệ thống sản xuất

      Ngoài lệnh THÍCH tìm kiếm toàn bộ cơ sở dữ liệu, Đúng là bạn không thể lập chỉ mục trên lệnh THÍCH. Sử dụng tốt hơn sẽ bằng cách sử dụng MATCH

      Làm cách nào để tải xuống tệp PHP từ URL?

      Các bước để tải tệp xuống. .
      Khởi tạo URL tệp cho biến
      Tạo phiên cURL
      Khai báo một biến và lưu tên thư mục lưu file tải về
      Sử dụng hàm basename() để trả về tên cơ sở tệp nếu đường dẫn tệp được cung cấp dưới dạng tham số
      Lưu tệp vào vị trí đã cho

      Làm cách nào để lấy mã nguồn HTML từ URL trong PHP?

      Nếu máy chủ PHP của bạn cho phép trình bao bọc url fopen thì cách đơn giản nhất là. $html = file_get_contents('https. //edureka. co/'); Nếu bạn cần kiểm soát nhiều hơn thì bạn nên xem các hàm cURL. $c = curl_init('https. //edureka. co/'); .

      Làm cách nào để sao chép mã nguồn PHP từ trang web?

      Chrome. Nhấp chuột phải vào khoảng trống trên trang và chọn Xem nguồn trang. Đánh dấu mã, sau đó sao chép và dán vào tệp văn bản . firefox. Từ thanh menu, chọn Công cụ > Nhà phát triển web > Nguồn trang. Đánh dấu mã, sau đó sao chép và dán vào tệp văn bản.

      Có thể truy xuất mã nguồn PHP của một trang web không?

      Cách BÌNH THƯỜNG duy nhất để xem mã nguồn PHP nằm trong một số tệp là sử dụng tiện ích mở rộng phps, thay vì tiện ích mở rộng php thông thường . Nếu bạn tạo phần mở rộng tệp. phps, máy chủ được cấu hình phù hợp sẽ xuất ra nguồn được định dạng màu thay vì html được tạo mà người ta mong đợi.