HomeLập trìnhPhpSố hàng php!...

Số hàng php! – Diễn đàn freeCodeCamp


Xin chào các trại viên! <3
Vì vậy, tôi chưa quen với việc viết mã, tôi đã viết mã này để tạo trường tìm kiếm và tôi vẫn gặp sự cố này. Ai có thể giúp tôi không

mã của tôi :

<?php include 'header.php'; ?>
<h1>Search Page</h1>
<div class="article-container">

<?php 

	if ($_POST['submit-search']){
		$Search = mysqli_real_escape_string($conn,$_POST['search']);
		$sql = "SELECT * articals WHERE a_title LIKE '%$search%' OR a_artical LIKE '%$search%'OR a_author LIKE '%$search%' a_date LIKE '%$search%' ";
		$result = mysqli_query($conn,$sql);
		$queryReslut = mysqli_num_rows($result);

		if ($queryReslut > 0 ) {
			while ($row = mysqli_fetch_assoc($reslut)) {
				echo "<div> 
								<h3>".$row['a_title']."</h3>
								<p>". $row['a_text']."</p>
								<p>". $row['a_date']."</p>
								<p>". $row['a_author']. "</p>

							</div>";
			}
		} else if ($queryReslut = 0) {
			echo "There are no results matching your search!";
		}
	}

		?>

Lỗi tôi nhận được:
Cảnh báo : mysqli_num_rows() dự kiến ​​tham số 1 là mysqli_result, bool được đưa ra trong C:\Tệp chương trình\Ampps\www\test\searchfield\index.php Trực tuyến 15


Cảm ơn bạn rất nhiều vì đã phát lại tốc độ thực sự của bạn nhưng tôi không thực sự hiểu được, bạn có thể giải thích được không?

Hãy nhìn vào Giá trị trả về phần của trang này, trên tài liệu của php: https://www.php.net/manual/en/mysqli.query.php

Đây là vấn đề: có lỗi trong câu lệnh SQL của bạn, điều này gây ra mysql_query() thất bại. Khi nó không thành công, nó trả về một Boolean false giá trị, chứ không phải là mysqli_result trả về giá trị mà mysql_num_rows() đang tìm kiếm.

Sửa lỗi SQL hoặc xử lý lỗi đến từ mysql_query() cuộc gọi.

Đọc thêm  Sửa mã PHP - Diễn đàn freeCodeCamp



3 lượt thích

Cảm ơn ngài rất nhiều!
tôi sẽ cố gắng tìm ra nó

Không được thử nghiệm, nhưng nó sẽ giúp ích.

<?php 

if ($_POST['submit-search']) {
	$conn = new mysqli("localhost", "my_user", "my_password", "my_db");

	// Check connection
	if ($conn->connect_error) {
	  echo "Failed to connect to MySQL: " . $conn->connect_error;
	  exit();
	}

	$search = mysqli_real_escape_string($conn,$_POST['search']);
	$sql = "SELECT * FROM articals WHERE a_title LIKE '%$search%' OR a_artical LIKE '%$search%' OR a_author LIKE '%$search%' OR a_date LIKE '%$search%' ";
	$result = mysqli_query($conn, $sql);
	$resultNrows = mysqli_num_rows($result);

	if ($resultNrows > 0 ) {
		while ($row = mysqli_fetch_assoc($result)) {
			echo "<div> 
					<h3>".$row['a_title']."</h3>
					<p>". $row['a_text']."</p>
					<p>". $row['a_date']."</p>
					<p>". $row['a_author']. "</p>
				</div>";
		}
	} else if ($resultNrows = 0) {
		echo "There are no results matching your search!";
	}
	
	mysqli_free_result($result);
	mysqli_free_result($resultNrows);
}

?>



2 lượt thích

nó đã làm việc!
nhưng tôi không nhận được các bài báo không có trong trang chỉ mục hoặc trong trang bài báo nơi nó hiển thị sau khi tìm kiếm
tôi chưa quen với tất cả những điều này, hơi khó một chút nhưng tôi đang bị ném
Cảm ơn bạn rất nhiều!

Lỗi trong SQL chỉ là ở phần cuối, tùy chọn cuối cùng không được dẫn dắt bởi OR. Khi SQL đã được sửa, nó sẽ hoạt động tốt. Mặc dù vậy, sẽ không phải là một ý tưởng tồi nếu kiểm tra lỗi:

$result = mysqli_query($conn, $sql);
if ($result == false){
  // Here, you have an error, handle it!
} else {
  // Here, we KNOW that result isn't false, so it's safe!
  $resultNRows = mysqlI_num_rows($result);
  // ... and on and on.



1 lượt thích

Đọc thêm  Sự cố với PDO khi thực thi php

Cảm ơn lời khuyên của bạn, tôi sẽ cố gắng hết sức và tôi đã quên kiểm tra lỗi trước rồi tiếp tục viết mã, cảm ơn bạn rất nhiều!

Tôi nghĩ rằng bạn đã quên “HOẶC” hoặc có thể và “VÀ” bên trong truy vấn của bạn ngay trước a_date ?



1 lượt thích

Cú bắt tuyệt vời, @romi_devx – đó chính xác là lỗi mà tôi đã gợi ý với “có lỗi trong SQL của bạn”. Chính xác tại sao truy vấn không thành công.

Điều đó nói rằng, đó là một ví dụ tuyệt vời về lý do tại sao chúng ta cần kiểm tra lỗi trong mã của mình… :nháy mắt:



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status