flat_00
جمعه 20 مهر 1397, 12:44 عصر
سلام من از برنامه نویسی هیچی نمیدونم. یه کد از اینترنت پیدا کردم که باهاش میشه در دیتابیس mysql با استفاده از php جستجو کرد. با اینکه همه چیز درست کار میکنه ولی یه مشکلی وجود داره و اون اینه که اگه فیلد خالی باشه و کسی دکمه go رو بزنه در صفحه بعد همه محتویات دیتابیس نشون داده میشه. کاری که من میخوام بکنم اینه که با یه خط به کدهای php اضافه کنم که اگه کسی فیلد جستجو رو خالی گذاشت و دکمه go یا search رو زد یا اینکه مستقیم به آدرس صفحه search.php رفت، در صفحه پیامی نشان داده بشه و بگه چیزی یافت نشد یا محتوایی برای نمایش وجود ندارد.
کد های من از دو قسمت تشکیل شده که در فایل های index.php و search.php هستند.
محتوای فایل index.php
<!DOCTYPE html><html>
<head>
<title>Search</title>
</head>
<body>
<form action="./search.php" method="get">
<input type="text" name="q">
<input type="submit" value="go">
</form>
</body>
</html>
محتوای فایل search.php
<?php
$conn = mysqli_connect("localhost", "user", "pass", "db_name");
if(mysqli_connect_errno()){
echo "Failed to connect: " . mysqli_connect_error();
}
error_reporting(0);
$output = '';
if(isset($_GET['q']) && $_GET['q'] !== ' '){
$searchq = $_GET['q'];
$q = mysqli_query($conn, "SELECT * FROM search WHERE keywords LIKE '%$searchq%' OR title LIKE '%$searchq%'") or die(mysqli_error());
$c = mysqli_num_rows($q);
if($c == 0){
$output = 'No search results for <b>"' . $searchq . '"</b>';
} else {
while($row = mysqli_fetch_array($q)){
$id = $row['id'];
$title = $row['title'];
$desc = $row['description'];
$link = $row['link'];
$output .= '<a href="' . $link . '">
<h3>' . $title . '</h3>
<p>' . $desc . '</p>
</a>';
}
}
} else {
header("location: ./");
}
print("$output");
mysqli_close($conn);
?>
کد های من از دو قسمت تشکیل شده که در فایل های index.php و search.php هستند.
محتوای فایل index.php
<!DOCTYPE html><html>
<head>
<title>Search</title>
</head>
<body>
<form action="./search.php" method="get">
<input type="text" name="q">
<input type="submit" value="go">
</form>
</body>
</html>
محتوای فایل search.php
<?php
$conn = mysqli_connect("localhost", "user", "pass", "db_name");
if(mysqli_connect_errno()){
echo "Failed to connect: " . mysqli_connect_error();
}
error_reporting(0);
$output = '';
if(isset($_GET['q']) && $_GET['q'] !== ' '){
$searchq = $_GET['q'];
$q = mysqli_query($conn, "SELECT * FROM search WHERE keywords LIKE '%$searchq%' OR title LIKE '%$searchq%'") or die(mysqli_error());
$c = mysqli_num_rows($q);
if($c == 0){
$output = 'No search results for <b>"' . $searchq . '"</b>';
} else {
while($row = mysqli_fetch_array($q)){
$id = $row['id'];
$title = $row['title'];
$desc = $row['description'];
$link = $row['link'];
$output .= '<a href="' . $link . '">
<h3>' . $title . '</h3>
<p>' . $desc . '</p>
</a>';
}
}
} else {
header("location: ./");
}
print("$output");
mysqli_close($conn);
?>