2017-05-31 197 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(empty($ _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']); 
} 
?> 

上,并

<?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>'); 

这应该为你做。希望这可以帮助。随意评论,如果你需要任何进一步的信息。