2016-06-27 8 views
-1

私はmysqlの用語で格納されたデータを入力すると、 の検索ボックスに の検索ボックスを作っていきます。最新の検索結果を持つ検索ボックスを作成するにはどうすればよいですか?

多分固有のIPまたは最も最近の検索に基づいて

..

永遠または20最重要指名手配の検索に20件の検索のリストを作成する方法?

どうすれば結果検索ボックスを作成できますか? チュートリアルがありますか、ファイルを渡したいですか?


- 更新 -

PHP

ここ
<?php 
/*----------------------- 
First part: db connection 
-------------------------*/ 
$dbhost = "localhost"; 
$dbname = "aa"; 
$dbuser = "root"; 
$dbpass = ""; 
$db=mysql_connect($dbhost, $dbuser, $dbpass); 
if ($db==FALSE) 
die("Error while connecting to MYSQL ".mysql_error()); 
mysql_select_db($dbname ,$db); 
/*------------------------------ 
Read and save the search query 
-------------------------------*/ 
$querystat = mysql_real_escape_string($_GET['q']); 
$datetime = time(); 

if(($_SERVER['HTTP_REFERER'] == '') AND (($querystat != $_SESSION['prev_search']) OR (($datetime - $_SESSION['datetime']) > 60))) { 
$insertquery = "INSERT INTO `query` (`query` , `datetime`) VALUES ('$querystat' , '$datetime');"; 
mysql_query($insertquery, $db); 
} 

$_SESSION['datetime'] = $datetime; 
$_SESSION['prev_search'] = $querystat; 
?> 
<form method="GET" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
    Form:<br> 
    <input type="text" name="q" value=""><br><br> 
    <input type="submit" value="Submit"> 
</form> 

SQL

CREATE TABLE `query` (
    `id` int(11) NOT NULL, 
    `query` varchar(255) NOT NULL DEFAULT '', 
    `datetime` int(11) NOT NULL DEFAULT '0' 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

をしてくださいあなたの助け..

+0

これまでに試したことを追加してください。 –

+0

@Dinidu here code、私はあなたの助けを歓迎します – ane

答えて

1

申し訳ありませんが、私の悪い英語あなたは何lのためのookingはページネーションです。データベースからデータを取得した後、ページごとに20件の検索を行うことができます。
Thisは、データフェッチのページ設定に関するチュートリアルの1つです。 SOからの
Thisページも、ページネーションの簡単なソリューションを提供します。
引用元:(Simple PHP Pagination script)、説明はすべてコメントになります。

try { 

    // Find out how many items are in the table 
    $total = $dbh->query(' 
     SELECT 
      COUNT(*) 
     FROM 
      table 
    ')->fetchColumn(); 

    // How many items to list per page 
    $limit = 20; 

    // How many pages will there be 
    $pages = ceil($total/$limit); 

    // What page are we currently on? 
    $page = min($pages, filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, array(
     'options' => array(
      'default' => 1, 
      'min_range' => 1, 
     ), 
    ))); 

    // Calculate the offset for the query 
    $offset = ($page - 1) * $limit; 

    // Some information to display to the user 
    $start = $offset + 1; 
    $end = min(($offset + $limit), $total); 

    // The "back" link 
    $prevlink = ($page > 1) ? '<a href="?page=1" title="First page">&laquo;</a> <a href="?page=' . ($page - 1) . '" title="Previous page">&lsaquo;</a>' : '<span class="disabled">&laquo;</span> <span class="disabled">&lsaquo;</span>'; 

    // The "forward" link 
    $nextlink = ($page < $pages) ? '<a href="?page=' . ($page + 1) . '" title="Next page">&rsaquo;</a> <a href="?page=' . $pages . '" title="Last page">&raquo;</a>' : '<span class="disabled">&rsaquo;</span> <span class="disabled">&raquo;</span>'; 

    // Display the paging information 
    echo '<div id="paging"><p>', $prevlink, ' Page ', $page, ' of ', $pages, ' pages, displaying ', $start, '-', $end, ' of ', $total, ' results ', $nextlink, ' </p></div>'; 

    // Prepare the paged query 
    $stmt = $dbh->prepare(' 
     SELECT 
      * 
     FROM 
      table 
     ORDER BY 
      name 
     LIMIT 
      :limit 
     OFFSET 
      :offset 
    '); 

    // Bind the query params 
    $stmt->bindParam(':limit', $limit, PDO::PARAM_INT); 
    $stmt->bindParam(':offset', $offset, PDO::PARAM_INT); 
    $stmt->execute(); 

    // Do we have any results? 
    if ($stmt->rowCount() > 0) { 
     // Define how we want to fetch the results 
     $stmt->setFetchMode(PDO::FETCH_ASSOC); 
     $iterator = new IteratorIterator($stmt); 

     // Display the results 
     foreach ($iterator as $row) { 
      echo '<p>', $row['name'], '</p>'; 
     } 

    } else { 
     echo '<p>No results could be displayed.</p>'; 
    } 

} catch (Exception $e) { 
    echo '<p>', $e->getMessage(), '</p>'; 
} 
+0

@MichaelGaskill私はコードを含めるためにこの投稿を編集しました。私はここに来ましたので、そのような編集が受け入れられるかどうかについて私にコメントをしてください。 – DunnoHowToCode

+0

あなたの答えは自動的に "低品質"の回答となっていました。その旗に応答する多数の査読者がいて、それが「低品質」の回答であるか否かを確認する。実際の内容で答えを更新したので、答えは「高品質」と見なされます。あなたは[ヘルプセンター](/ help)と[Meta Stack Exchange](http://meta.stackexchange.com)と[Meta Stack(Meta Stack)]で高品質の回答を確実にする方法について読むことに興味があるかもしれません。オーバーフロー](http://meta.stackoverflow.com)。 –

+0

@MichaelGaskillアドバイスをいただき、ありがとうございました。私は次回に注意します。 – DunnoHowToCode

関連する問題