2016-06-21 4 views
0

私は私のコードで小さな問題を抱えていると私はそれが何であるかを把握することはできません。..検索エンジンのスクリプト - 未定義の変数

私はPHPのサンプル検索エンジンのツールを作成しようとしている、すべてが良い作品私は、データベースから、いくつかの記事を検索するtryiedするまで...私はそれを行うとき、それは...私は$ headerおよび$バイオが宣言されていない

<?php 

include('connection.php'); 

$query =mysqli_real_escape_string($dbc, $_POST['query']); 

$q = mysqli_query($dbc, "SELECT id FROM search WHERE header LIKE '%$query%' OR bio LIKE '%$query%'"); 


$num = mysqli_num_rows($q); 

echo $num; 

if(!$query){ 
echo "Enter a query..."; 
} else { 

if($num != 0) 
{ 

    echo "<hr>"; 
    while ($fetch = mysqli_fetch_assoc($q)){ 

     $id = $fetch['id']; 
     $header = $fetch['header']; 
     $bio = $fetch['bio']; 


    echo "<strong>" . $header . "</strong>"; 
    echo "<blockquote><p>" . $bio . "</p></blockquote>"; 
    echo "<hr>"; 

    } 

} else { 
    echo "No results where found .. "; 
} 

} 

?> 

とフォームを言う

<div style = "width:300px; margin:auto;"> 

    <h1> Add Search Criteria</h1> 
    <p> Type a header and bio below to add to search engine</p> 

    <p> 
     <input id="header" name = "header" type="text" placeholder="header" style="width:100%;"> 
    </p> 

    <p> 
     <textarea id="bio" name="bio" cols="40" rows="7" placeholder="Write a bio.."></textarea> 
    </p> 

    <p> 
     <center> 
      <button id="submit">Submit Search</button> 
     </center> 
    </p> 

    <div id="add_error" style="text-align:center"></div> 

    <hr> 

    <h1>Search The Database</h1> 
    <p>Please type something to search to database</p> 

    <p> 
     <input name = "query" id="query" type="text" placeholder="search"> 
     <button id="search">Search</button> 
    </p> 

    <div id="search_error"> 

    </div> 

</div> 

これが出力するもの

注意:未定義のインデックス:Cのヘッダー:ライン上の\ wamp64 \ WWW \名前がMyWebSite \検索\のsearch.php 25 コールスタック

{メイン}タイムメモリ機能場所

1 0.0021 242472( )... \ search.php:0

(! )注意:不定インデックス:Cでのバイオ:\ wamp64 \ WWW \名前がMyWebSiteライン上の検索の\ search.php 26 コールスタック

時間メモリー機能場所

1 0.0021 242472 \ {メイン}().. 。\ search.php:0

+0

選択したクエリにヘッダーとバイオカラムを追加します。 –

+0

あなたのクエリーに、 'SELECT id、header、bio FROM search WHERE header LIKE '%$ query%' OR bio LIKE '%$ query%''のような 'header'と' bio'の両方を追加します。しかし、あなたは本当に攻撃を防ぐために準備されたクエリを使うべきです。 – Sablefoste

答えて

1

選択したクエリにヘッダーとバイオカラムを追加します。

$q = mysqli_query($dbc, "SELECT id, header, bio FROM search WHERE header LIKE '%$query%' OR bio LIKE '%$query%'"); 
+0

...またはすべてを選択してください* FROM ....あなたのアイデアをありがとう、あなたの目を開けた –

+1

Select *オプションには行かないでください。必要はありません。スクリプトで作業する必要のあるSelect文にのみ列を追加します。 – DBA