2017-05-31 16 views
0

私はWordpressのページを持っています。私はAmazon AWSでホストされているデータベースから取得する検索機能を使って作業しています。新しいページで検索結果を表示

検索すると、データをきちんと引き出すことができますが、結果は検索バーの下に表示されます。
結果を別のページに表示したいのですが。

何も問題はありませんでしたが、以前に質問されたことを使用していくつかの提案を試みました。提供される任意のヘルプははるかに高く評価されて

<?php 
/* Template Name: Database */ 
?> 

<?php 
global $query_string; 

$query_args = explode("&", $query_string); 
$search_query = array(); 

if(strlen($query_string) > 0) { 
    foreach($query_args as $key => $string) { 
    $query_split = explode("=", $string); 
    $search_query[$query_split[0]] = urldecode($query_split[1]); 
    } // foreach 
} //if 

$search = new WP_Query($search_query); 
?> 


<?php get_header(); ?> 
<?php get_footer(); ?> 

<?php 
$db_hostname = 'xxxxxxxxxxxxxxx'; 
$db_username = 'xxxxxxxxxxxxxxx'; 
$db_password = 'xxxxxxxxxxxxxxx'; 
$db_database = 'xxxxxxxxxxxxxxx'; 

$con = mysql_connect($db_hostname,$db_username,$db_password); 
if (!$con){ 
    die('404 Could not connect to server: ' . mysql_error()); 
} 

mysql_select_db($db_database, $con); 

    global $sf_options; 
    $sidebar_config = $sf_options['archive_sidebar_config']; 
    $left_sidebar = $sf_options['archive_sidebar_left']; 
    $right_sidebar = $sf_options['archive_sidebar_right']; 
    $blog_type  = $sf_options['archive_display_type']; 

    if ($blog_type == "masonry" || $blog_type == "masonry-fw") { 
     global $sf_include_imagesLoaded; 
     $sf_include_imagesLoaded = true; 
    } 
?> 

<div class="container-fluid"> 
    <center> 
    <form role="" method="get" > 
     <p style="color: #fff;">Search products and services for your business. We make it easier<br />to manage your business operations and make informed purchasing decisions.</p> 
     <input type="text" name="term" placeholder="Start typing to find a product or business"/> 
     <span><input type="submit" value="" class="btn btn-default" /></span> 
    </form> 
    </center> 
</div> 

<?php 
if (!empty($_REQUEST['term'])) { 

    $term = mysql_real_escape_string($_REQUEST['term']); 

    $sql = "SELECT * FROM wpfr_listing WHERE Description LIKE '%".$term."%'"; 
    $r_query = mysql_query($sql); 

    while ($row = mysql_fetch_array($r_query)){ 

    echo '<br /> Company: ' .$row['title']; 
    echo '<br /> Certs: '.$row['certs']; 
    echo '<br /> Certifier: '.$row['certifier']; 
    echo '<br /> Address: '.$row['address']; 
    echo '<br /> Country: '.$row['country']; 
    echo '<br /> State: '.$row['state']; 
    echo '<br /> City: '.$row['city']; 
    } 

} 
?> 

は、ここに私のコードです。

+0

の少年ああ、このコードはとても脆弱です。あなたのフォームの前に 'if(空白($ _REQUEST ['term']))'を追加し、フォームの下の 'if'を' else'に変更してみてください – JapanGuy

+0

このコードを脆弱にする原因は何ですか?これは、もはや使用していない開発者によって書かれたものです。 – MARVNVRAM

+0

mysql_コマンドは廃止され(mysqli_に変更されました)、同じファイル内のdbに接続するための資格証明を持たないことは良い方法ではありません。全体的には、mysqli_を使用するよりもPDOに切り替える方が良いです。 http://php.net/manual/en/ref.pdo-mysql.php – JapanGuy

答えて

1

このページの書き込み

<?php if (!empty($_REQUEST['term'])) { 
header("location: page_url?term=".$_REQUEST['term']); 
} 
?> 

そしてserach結果ページ

<?php 
$term = mysql_real_escape_string($_GET['term']); 
    $sql = "SELECT * FROM wpfr_listing WHERE Description LIKE '%".$term."%'"; 
    $r_query = mysql_query($sql); 
    while ($row = mysql_fetch_array($r_query)){ 
    echo '<br /> Company: ' .$row['title']; 
    echo '<br /> Certs: '.$row['certs']; 
    echo '<br /> Certifier: '.$row['certifier']; 
    echo '<br /> Address: '.$row['address']; 
    echo '<br /> Country: '.$row['country']; echo '<br /> State: '.$row['state']; 
    echo '<br /> City: '.$row['city']; 
    } 
    ?> 
+0

ありがとうございます。これはまさに私が探していたものです! – MARVNVRAM

+0

それから答えを受け入れてください –

0

これは、PHP経由でやりたかったので、ここに行きます。

1)新しいページを作成します。 2)ここで使用したクエリのGETデータを処理しますか。 3)このページで行ったように検索結果を印刷します。

ここでは、このページでヘッダーのリダイレクトを行う必要があります。ヘッダーのリダイレクトの構文は次のとおりです。

header('Location: http://www.example.com/?sql = <Your Query above>'); 

これはあなたのために行う必要があります。お役に立てれば。詳細が必要な場合は、お気軽にコメントしてください。

関連する問題