高手帮帮忙。(信息一条一条显示及分页问题)

joyuan 2009-03-30 09:44:17
高手帮忙呀!PHP+SQLITE3写的查询系统。帮忙添加一个分页功能,另外查询的信息在表格一条一行显示出来。谢谢!代码如下:

<?php
$q = $_REQUEST['q'];
$user = $_REQUEST['user'];
$type = $_REQUEST['type'];
$dsn = 'sqlite:ip.db';
try{
$dbh = new PDO($dsn, $user, $password);
$dbh->beginTransaction();
if (!empty($q)) {
if ($type == 'ip') {
$sth = $dbh->prepare("SELECT message FROM eimmessage WHERE recvid LIKE '%$user%' and msgtime LIKE '%$q%' order by msgtime");
$sth->execute();
$result = $sth->fetchall();
print_r($result);
$dsn=null;
}
}
}
catch (PDOException $e)
{
echo 'Connection failed: ' . $e->getMessage();
$dsn = null;
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>搜索</title>
<link href="ip.css" rel="stylesheet" type="text/css" />
</head>
<body>
<center><div class="area">
<form action="?" method="post" name="form1" target="_self" id="form1">
<label>Time:</label>
<input type="text" name="q" id="q" />
<input type="submit" name="submit" id="submit" value="Check" />
<input name="type" type="hidden" value="ip" />
<input name="user" type="hidden" id="user" value="<?php echo $user?>" />
</form></center>
</div>
</html>
...全文
88 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
joyuan 2009-03-30
  • 打赏
  • 举报
回复
谢谢jakey9826啊~ 已经弄好了部分功能。
joyuan 2009-03-30
  • 打赏
  • 举报
回复
谢谢你,不好意思,打扰你了。
有没高手比较闲的帮帮忙呀~万分感谢!
程序猿之殇 2009-03-30
  • 打赏
  • 举报
回复
看哪位达人有时间帮你嵌进去吧.呵呵.
有点忙,
况且也没有环境测试.
joyuan 2009-03-30
  • 打赏
  • 举报
回复
谢谢你,我对PHP不了解,不知道怎么应用,可以帮我嵌入进去吗?
我刚改了一下代码,如下:

<?php
$q = $_REQUEST['q'];
$user = $_REQUEST['user'];
$type = $_REQUEST['type'];
$sendid = $_REQUEST['sendid'];
$dsn = 'sqlite:ip.db';
try{
$dbh = new PDO($dsn, $user, $password);
$dbh->beginTransaction();
if (!empty($q)) {
if ($type == 'ip') {
$sth = $dbh->prepare("SELECT message,msgtime,sendid FROM eimmessage WHERE recvid LIKE '%$user%' and msgtime LIKE '%$q%' order by msgtime");
$sth->execute();
$result = $sth->fetchall();
print_r($result);
$dsn=null;
} elseif ($type == 'area') {
$sth = $dbh->prepare("SELECT message,msgtime,sendid FROM eimmessage WHERE recvid LIKE '%$user%' and sendid LIKE '%$q%' order by msgtime");

$sth->execute();

$result = $sth->fetchAll();

print_r($result);


$dsn=null;
}
}
}

catch (PDOException $e)

{

echo 'Connection failed: ' . $e->getMessage();


$dsn = null;

}
?>


搜索页面我独立开来了,搜索的时候表格显示message,msgtime,sendid的内容。万分感谢!
程序猿之殇 2009-03-30
  • 打赏
  • 举报
回复
1 sqlite 分页子句 LIMIT $count OFFSET $from
$count表示条数,$from表示从哪个位置开始.
2 生成分页串的函数
$baseUrl 为当前页面的url,
$total 为总的记录数
$start 为起始位置
$limit 为每页的记录数
$parm 为要带的额外参数

function _setPage($baseUrl, $total, $start, $limit, $parm="")
{
if($total != 0) $pages = $total/$limit; else $pages = 0;
if(empty($start)) $start=0;
if(empty($limit)) $limit=20;
if($start>$total)$start=$total-$limit;
if($start<0) $start=0;
if($limit<0) $limit=0;
if($limit>100) $limit=100;

//$start = $start - $top;
$showpage = 10;
$currentpage=$start/$limit;
if($currentpage<5){
$pageno=0;
$i=0;
} else{
if($currentpage+10 > $total/$limit ){
$pageno=$currentpage -5;
}else{
$pageno=$currentpage - 5;
}
$i=$pageno*$limit;
}
if($total==0) $currentpage = -1;
$strPage = "总[" . ($currentpage + 1) . "/" . ceil($pages) . "]页  ";
$page=0;
$strPage .= "";

if($start/$limit > $showpage)
{
$tmp = ($pageno - 1)* $limit;
$strPage.= "<a href='$baseUrl&$parm&start=".($tmp)."&limit=$limit'><<</a>";
}

while($i < $total)
{
if($start/$limit ==$pageno)
{
$strPage .= "<font color=red>". ($pageno + 1) ." </font>";
}
else
{
$strPage .= "<a href='$baseUrl&$parm&start=".($pageno*$limit)."&limit=$limit'>".($pageno + 1)."</a> ";
}
$pageno++;
$page++;
$i+=$limit;

if($page > $showpage)
{
$strPage.= "<a href='$baseUrl&$parm&start=".($pageno*$limit)."&limit=$limit'>>></a>";
break;
}
}

if($start>0){
$strPage .= " <a href='$baseUrl?$parm&start=0&limit=$limit'>首页</a> ";
}else{
$strPage .= " 首页 ";
}

if($start>0){
$strPage .= " <a href='$baseUrl&$parm&start=".($start-$limit)."&limit=$limit'>上一页</a> ";
}
if($start+$limit< $total){
$strPage .= " <a href='$baseUrl&$parm&start=".($start+$limit)."&limit=$limit' >下一页</a> ";
}

if($start+$limit< $total){
$strPage .= " <a href='$baseUrl&$parm&start=".($total- $total%$limit)."&limit=$limit'>尾页</a> ";
}else{
$strPage .= " 尾页 ";
}
return $strPage;
}

3 记录一条一条的显示,最简单的弄个table就可以了.
 <table>
<?php
//$arrInfo为保存数据的二维数组
$strPattern = "<tr><td>%s</td><td>%s</td><td>%s</td></tr>";
foreach($arrInfo as $key=>$value)
{
echo sprintf($strPattern, $value['xx'], $value['xxx'], $value['xxxxx']);
}
?>
</table>

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧