2016-06-20 13 views
-3

ローカルサーバー上で自分のウェブサイトの検索バーを作成しようとしていますが、生成されたページを送信すると空白になります。私はオンラインでいくつかのガイドを続けてきましたが、なぜ私のMySQLデータベースに接続せず、結果を得るのか分からないようです。これは初めてのdbとPHPの試みですので、すべてのアドバイスに感謝します。PHP検索機能がMySQLに接続できません

<form action="./search.php" method="get"> 
     <input type="text" name="q"> 
     <input type="submit" value="Search"> 
</form> 

Search.php

<?php 

    $conn = mysqli_connect("localhost", "root", "root", "womendig_search"); 

    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']; 
       $city = $row['city']; 
       $country = $row['country']; 
       $descriptions = $row['descriptions']; 

       $output .= '<h3>' . $title . '</h3> 
           <p>' . $desc . '</p> 
          '; 
      } 
     } 
    } else { 
     header("location: ./"); 
    } 
    print("$output"); 
    mysqli_close($conn); 

?> 
+0

スタートを使用(http://stackoverflow.com/questions/845021/how-to-get-useful-error- messages-in-php) – Machavity

+0

空白のページは通常エラーです。エラーログを確認しましたか?また、SQLインジェクションにもオープンしているので、クエリが無効になる可能性があります。 – chris85

+0

あなたの '$ output'では' $ title'と '$ desc'を追加しています。それらはどこに設定されますか? –

答えて

0

$title$descあなたが空<h3>と空<p>のタグを持っているので、定義されていませんでした。

また、私はあなたのコードにいくつかの変更を加えることをお勧めします。

代わり$_GET['q'] !== ' 'の使用!empty($_GET['q'])と[エラーをオンにする]でextract($row);の代わり

$id = $row['id']; 
$city = $row['city']; 
$country = $row['country']; 
$descriptions = $row['descriptions']; 
関連する問題