创建自定义数据库表的搜索表单

时间:2013-08-23 作者:user37060

我在WP数据库中有一个自定义表,可以使用以下代码通过分页很好地显示该表:

<?php

global $wpdb;
$rows_per_page = 50;
$current = (intval(get_query_var(\'paged\'))) ? intval(get_query_var(\'paged\')) : 1;

$rows = $wpdb->get_results( "SELECT * FROM nc_rates_eng"); 
global $wp_rewrite;

$pagination_args = array(
\'base\' => @add_query_arg(\'paged\',\'%#%\'),
\'format\' => \'\',
\'total\' => ceil(sizeof($rows)/$rows_per_page),
\'current\' => $current,
\'show_all\' => false,
\'type\' => \'plain\',
);

if( $wp_rewrite->using_permalinks() )
$pagination_args[\'base\'] = user_trailingslashit( trailingslashit( remove_query_arg(\'s\',get_pagenum_link(1) ) ) . \'page/%#%/\', \'paged\');

if( !empty($wp_query->query_vars[\'s\']) )
$pagination_args[\'add_args\'] = array(\'s\'=>get_query_var(\'s\'));

echo paginate_links($pagination_args);

$start = ($current - 1) * $rows_per_page;
$end = $start + $rows_per_page;
$end = (sizeof($rows) < $end) ? sizeof($rows) : $end;

echo "<table width=\'100%\' align=\'center\' border=\'3px solid grey\'>";
echo "<tr>";
echo "<th style=\'background: #B9C9FE;\'>Destination</th>";
echo "<th style=\'background: #B9C9FE;\'>Dial Prefix</th>";
echo "<th style=\'background: #B9C9FE;\'>Cost per Minute (euros)</th>";
echo "</tr>";
echo "<tbody>";


for ($i=$start;$i < $end ;++$i ) {
$row = $rows[$i];

echo "<tr>";
echo "<td>$row->r_dest</td>";
echo "<td>$row->r_prefix</td>";
echo "<td>$row->r_rate</td>";
echo "</tr>";
}
echo "</tbody>";
echo "</table>"; 

echo paginate_links($pagination_args);

?>
然而,我也希望能够从用户那里获取输入来搜索此表,并以相同的格式显示结果。最好的方法是什么?

我尝试在页面顶部添加一个简单表单,并将结果插入sql查询:

<form method="get" id="searchform" action="">
<p>
<label>Destination:</label> <input type="text" name="destination" id="destination" value="" />
</p>
<input type="submit" id="searchsubmit" value="GO" />
</form>
。。。。。

$dest=$_GET[\'destination\'];
$rates_sql="SELECT * FROM nc_rates_eng WHERE r_dest LIKE " ."\'%$dest%\'";
。。。。

这是可行的,但破坏了分页功能。

任何帮助都将不胜感激!

2 个回复
SO网友:Digitalchild

我会使用custom query

这说明了如何在自定义表中搜索关键字。您可以根据需要将其调整为表和所需的输出。

SO网友:Betty

由于查询变量的名称是“destination”,因此应该将代码中的“s”改为“destination”。例如,发件人:

if( !empty($wp_query->query_vars[\'s\']) )
$pagination_args[\'add_args\'] = array(\'s\'=>get_query_var(\'s\'));
进入:

if( !empty($wp_query->query_vars[\'destination\']) )
$pagination_args[\'add_args\'] = array(\'destination\'=>get_query_var(\'destination\'));

结束

相关推荐

WP_User_Query not searching

我目前有以下代码,在user\\u business表中有一个名为“Clark Farm”的用户。下面的代码不返回任何内容。如果删除搜索词,则会列出所有用户。我正在试图确定为什么搜索不起作用。。<?php /** * @package WordPress * @subpackage themename */ get_header(); ?> <?php $url = $_SERVER[\'REQUEST_U