2017-04-21 25 views
-1

私のサイトに検索バーがあります。検索ボタンをクリックすると、上記のエラーが表示されます。私はそれを修正する方法を知らないので、高度なコーダーではありません。私はオンラインで検索しましたが、この問題の解決策がありますが、私のために働いていません。これは数日後に予定されているプロジェクトのため、私が得ることができるすべての助けに感謝します。それは私の最初の投稿でもありますので、私には簡単に行ってください。あなたはこれがある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';?> 

答えて

0

機能public function search($search_term)は、ライン66上の閉じありがとうございましたフォーマットが不適切な結果。このような小さなミスを回避できるように、コードをきちんと整形してください。 :)時にはそれはあなたのアプリケーションがクラッシュすると、最小のものが時々見つけることは難しいことができ、最小のものである

...

+0

こんにちは、ご回答ありがとうございました。私は}}しかし、次のエラーを取得しています。パースエラー:シンタックスエラー、予期しない 'パブリック'(T_PUBLIC)C:\ xampp \ htdocs \ vgdb \ csearch.php 43行。 – SyedNaqvi

+0

問題はありません。私はあなたがそれを得る理由は何も表示されませんが、今のところ 'connect()'関数にコメントし、まだ表示されているかどうかを確認しようとしています。そうでない場合は、 'public function search'を' function search'に変更してみてください。また、接続が成功したかどうかを確認してください。 'if(mysqli_connect_errno()){exit( 'Connect failed:'、mysqli_connect_error());}' – CAllen

関連する問題