私のサイトに検索バーがあります。検索ボタンをクリックすると、上記のエラーが表示されます。私はそれを修正する方法を知らないので、高度なコーダーではありません。私はオンラインで検索しましたが、この問題の解決策がありますが、私のために働いていません。これは数日後に予定されているプロジェクトのため、私が得ることができるすべての助けに感謝します。それは私の最初の投稿でもありますので、私には簡単に行ってください。あなたはこれがあるclass search
構文解析エラー、予期しないファイルの終了、予期しない関数の終了(T_FUNCTION)またはconst(T_CONST)のC: xampp htdocs vgdb csearch.php行内
を閉じるには、別の}
を追加する必要が
csearch.php
<?php
/**
*Performs a search
*
* This class is used to perform search function in a MySQL database
*
*/
class search {
/**
* MySQLi connection
*@access private
*@var object
*/
private $mysqli;
/**
* Constructor
*
* This sets up the class
*/
public function __construct(){
// Connect to the database and store in $mysqli property_exists
$this->connect();
}
/**
* Database connection
*
* This connects to the database
*/
private function connect() {
$this->mysqli = new mysqli('localhost', 'root', '', 'games');
}
/**
* Search routine
*
* Performs a search
*
* @param string $search_term The search term
*
*
*/
public function search($search_term) {
// Sanatize the search term to prevent injection attacks
$sanitized = $this->mysqli->real_escape_string($search_term);
// Run the query
$query = $this->mysqli->query("
SELECT title
FROM games
WHERE title LIKE '%($sanitized)%'
OR body LIKE '%($sanitized)%'
");
// Check results
if (! $query->num_rows) {
return false;
}
// Loop and fetch objects
while($row = $query->fetch_object()) {
$rows[] = $row;
}
return $search_results;
}
?>
search.php
<?php
$search_results= "";
//check if search data was submitted
if (isset($_GET['s'])) {
// Include the search class
require_once(dirname(__FILE__) . '/csearch.php');
// Instantiate a new instance of the search class
$search = new search();
// Store search term into a variable
$search_term = $_GET['s'];
// Send the search term to the search class and store the result
$search_results = $search->search($search_term);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta hhtp-equiv="X-UA-Compatible" content="IE-edge">
<title>VGDB | SEARCH</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../vgdb/css/main.css">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-
awesome.min.css" rel="stylesheet" integrity="sha384-
wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN"
crossorigin="anonymous">
<link href='https://fonts.googleapis.com/css?family=Hind:600,400'
rel='stylesheet'>
</head>
<body>
<?php include 'header.php';?>
<div class="container">
<div class="col-md-5 col-md-offset-1">
<div class="row">
<div class="col-md-6">
<div class="search">
<h1>50,000 games and counting...</h1>
<form action="" method="get">
<input type="search" name="s" placeholder="Search for games..."
results="5" value="<?php echo $search_term; ?>">
<input type="submit" value="Search">
</div>
</div>
</div>
</div>
</div>
</form>
<?php if ($search_results) : ?>
<div class="results-count">
<p><?php echo $search_results['count']; ?> results found</p>
</div>
<div class="results-table">
<?php foreach ($search_results['results'] as $search_result) : ?>
<div class="result">
<p><?php echo $search_result->title; ?></p>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</body>
</html>
<?php include 'footer.php';?>
こんにちは、ご回答ありがとうございました。私は}}しかし、次のエラーを取得しています。パースエラー:シンタックスエラー、予期しない 'パブリック'(T_PUBLIC)C:\ xampp \ htdocs \ vgdb \ csearch.php 43行。 – SyedNaqvi
問題はありません。私はあなたがそれを得る理由は何も表示されませんが、今のところ 'connect()'関数にコメントし、まだ表示されているかどうかを確認しようとしています。そうでない場合は、 'public function search'を' function search'に変更してみてください。また、接続が成功したかどうかを確認してください。 'if(mysqli_connect_errno()){exit( 'Connect failed:'、mysqli_connect_error());}' – CAllen