WORDPRESS 中新建网页用PHP链接了MYSQL数据库,调用到的数据生成分页但为什么分页不能跳转显示不存在URL

WORDPRESS 中新建网页用PHP链接了MYSQL数据库,调用到的数据生成分页但为什么分页不能跳转显示不存在URL,第1张

回答这个问题有些吃力,你最好也还是需要增加点PHP知识。

你说前提是用WP来做网站,则数据库得做统一,比如说:

你的WP数据库设定为wordpress,那么需要将你另外两个数据库中的6个表,通过PHPMYADMIN或其他数据库管理软件,放到wordpress这个数据库中。

这样在使用$wpdb这个全局类时,可以免去切换数据库的麻烦。

当你将6个表放在wordpress后,设置WP下的wp-config.php,如下:

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** ///** WordPress数据库的名称 */define('DB_NAME', 'wordpress')/** MySQL数据库用户名 */define('DB_USER', 'root')/** MySQL数据库密码 */define('DB_PASSWORD', '')/** MySQL主机 */define('DB_HOST', 'localhost')/** * WordPress数据表前缀。 * * 如果您有在同一数据库内安装多个WordPress的需求,请为每个WordPress设置 * 不同的数据表前缀。前缀名只能为数字、字母加下划线。 */$table_prefix = 'wp_'

这里需要注意,如果你拷贝进去的6个数据表没有前缀,这里需要设置为空。

当你设置好后,并能正常安装wordpress,后台可以正常访问,再继续下一步。

在网站根目录下,新建demo.php文件,添加如下代码

<?php//载入wordpress核心文件require('./wp-blog-header.php') //声明全局变量$wpdbglobal $wpdb//页码获取$page = isset( $_QUEST['page'] ) &&$_QUEST['page'] ? (int)$_QUEST['page'] : 1//每页显示多少条$posts_per_page = 50$pgstrt = ($page - 1) * $posts_per_page . ', '$limits = 'LIMIT ' . $pgstrt . $posts_per_page $select = "SELECT * FROME $wpdb.[指定你要查询的数据表] "$where = " 1=1 "//查询数据库返回数据集$results = $wpdb->get_results( $select . $where . $limits, 'ARRAY_A' )//表格输出?><table> <thead> <tr> <th>表格标题:1</th> <th>表格标题:2</th> <th>表格标题:3</th> <th>表格标题:4</th> <th>表格标题:5</th> </tr> </thead> <tbody> <tr><?php$i = 1 //循环遍历数据集,输出表格单元foreach( $results as $k =>$r ){?> <td><?php echo $r->字段名1?></td> <td><?php echo $r->字段名2?></td> <td><?php echo $r->字段名3?></td> <td><?php echo $r->字段名4?></td> <td><?php echo $r->字段名5?></td><?phpif ( $i >5 ) {//输出时换行echo "</tr><tr>" $i = 1 }$i++}?> </tr> </tbody></table>

整个代码可能略显简单,但演示了$wpdb的分布查询,以及数据输出部分。

仅提供给你参考,希望有所帮助。

<html><head>

<title>分页示例(php</title>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

</head>

<body>

<?php

$pagesize=10//设定每一页显示的记录数

$conn=mysql_connect("localhost","root","jrq")

mysql_select_db("sj",$conn)

$rs = mysql_query( "select * from `dw_newsdata`",$conn)//这里有第二个可选参数,指定打开的连接

//-----------------------------------------------------------------------------------------------//

//分页逻辑处理

//-----------------------------------------------------------------------------------------------

$tmpArr = mysql_fetch_array($rs)

$numAL = mysql_num_rows($rs) //取得记录总数$rs

$pages=intval($numAL/$pagesize)//计算总页数

if ($numAL % $pagesize) $pages++

//设置缺省页码

//↓判断“当前页码”是否赋值过

if (isset($_GET['page'])){ $page=intval($_GET['page'])}else{ $page=1}//否则,设置为第一页

//↓计算记录偏移量

$offset=$pagesize*($page - 1)

//↓读取指定记录数

$rs=mysql_query("select * from `dw_newsdata` limit $offset,$pagesize",$conn)//取得—当前页—记录集!

$curNum = mysql_num_rows($rs)//$curNum - 当前页实际记录数,for循环输出用

?>

<table border="0" width="80%">

<tr>

<td width="50%" bgcolor="#E0E0E0">标题</td>

<td width="50%" bgcolor="#E0E0E0">发布时间</td>

</tr>

<?php

while ($tmpArr = mysql_fetch_array($rs)) //提取一行,并循环判断

{

$i=0

// for($a=0$a<$ColNum$a++) //==for结束==

?>

<tr>

<td width="50%"><?= $tmpArr[1] //$tmpArr["news_title"] ?></td>

<td width="50%"><?php echo $tmpArr[2] //$tmpArr["news_cont"]?></td>

</tr>

<?php

}//==while结束==

?>

</table>

<?php

//============================//

// 翻页显示 一

//============================//

echo "<p>" // align=center

$first=1

$prev=$page-1

$next=$page+1

$last=$pages

if ($page >1)

{

echo "<a href='?page=".$first."'>首页</a> "

echo "<a href='?page=".$prev."'>上一页</a> "

}

if ($page <$pages)

{

echo "<a href='?page=".$next."'>下一页</a> "

echo "<a href='?page=".$last."'>尾页</a> "

}

//============================//

// 翻页显示 二

//============================//

echo " | 共有".$pages."页(".$page."/".$pages.")"

for ($i=1$i<$page$i++){echo "<a href='?page=".$i."'>[".$i ."]</a> "} // 1-先输出当前页之前的

if ($page >0) echo "[".$page."]"// 2-再输出当前页

for ($i=$page+1$i<=$pages$i++){echo "<a href='?page=".$i."'>[".$i ."]</a> "}// 3-接着输出当前页之后

echo "转到第 <INPUT maxLength=3 size=3 value=".($page+1)." name=gotox>页 <INPUT hideFocus onclick=\"location.href='?page=gotox.value'\" type=button value=Go name=cmd_goto>"

echo "</p>"

?>

</body>

</html>

你这个太麻烦 我给你推荐一个

<?php

class page

{

var $page_name="page"

var $next_page='>'//下一页

var $pre_page='<'//上一页

var $first_page='<<首页'//首页

var $last_page='尾页>>'//尾页

var $pre_bar='<<'//上一分页条

var $next_bar='>>'//下一分页条

var $format_left=''

var $format_right=''

var $page_webmode=''

/**

* private

*

*/

var $pagebarnum=10//控制记录条的个数。

var $totalpage=0//总页数

var $nowindex=1//当前页

var $url=""//url地址头

var $offset=0

/**

* c*****tructor构造函数

*

* @param array $array['total'],$array['perpage'],$array['nowindex'],$array['url'],$array['ajax']...

*/

function page($array)

{

if(is_array($array)){

if(!array_key_exists('total',$array))$this->error(__FUNCTION__,'need a param of total')

$total=intval($array['total'])

$perpage=(array_key_exists('perpage',$array))?intval($array['perpage']):10

$nowindex=(array_key_exists('nowindex',$array))?intval($array['nowindex']):''

$url=(array_key_exists('url',$array))?$array['url']:''

}else{

$total=$array

$perpage=10

$nowindex=''

$url=''

}

if((!is_int($total))||($total<0))$this->error(__FUNCTION__,$total.' is not a positive integer!')

if((!is_int($perpage))||($perpage<=0))$this->error(__FUNCTION__,$perpage.' is not a positive integer!')

if(!empty($array['page_name']))$this->set('page_name',$array['page_name'])//设置pagename

$this->_set_nowindex($nowindex)//设置当前页

$this->_set_url($url)//设置链接地址

$this->totalpage=ceil($total/$perpage)

$this->total=$total

$this->offset=($this->nowindex-1)*$perpage

}

/**

* 设定类中指定变量名的值,如果改变量不属于这个类,将throw一个exception

*

* @param string $var

* @param string $value

*/

function set($var,$value)

{

if(in_array($var,get_object_vars($this)))

$this->$var=$value

else {

$this->error(__FUNCTION__,$var." does not belong to PB_Page!")

}

}

/**

* 获取显示"下一页"的代码

*

* @param string $style

* @return string

*/

function next_page($style='',$nowindex_style='')

{

if($this->nowindex<$this->totalpage){

return $this->_get_link($this->_get_url($this->nowindex+1),$this->next_page,$style)

}

return '<span class="'.$nowindex_style.'">'.$this->next_page.'</span>'

}

/**

* 获取显示“上一页”的代码

*

* @param string $style

* @return string

*/

function pre_page($style='',$nowindex_style='')

{

if($this->nowindex>1){

return $this->_get_link($this->_get_url($this->nowindex-1),$this->pre_page,$style)

}

return '<span class="'.$nowindex_style.'">'.$this->pre_page.'</span>'

}

/**

* 获取显示“首页”的代码

*

* @return string

*/

function first_page($style='',$nowindex_style='')

{

if($this->nowindex==1){

return '<span class="'.$nowindex_style.'">'.$this->first_page.'</span>'

}

return $this->_get_link($this->_get_url(1),$this->first_page,$style)

}

/**

* 获取显示“尾页”的代码

*

* @return string

*/

function last_page($style='',$nowindex_style='')

{

if($this->nowindex==$this->totalpage){

return '<span class="'.$nowindex_style.'">'.$this->last_page.'</span>'

}

return $this->_get_link($this->_get_url($this->totalpage),$this->last_page,$style)

}

function nowbar($style='',$nowindex_style='')

{

$plus=ceil($this->pagebarnum/2)

if($this->pagebarnum-$plus+$this->nowindex>$this->totalpage)$plus=($this->pagebarnum-$this->totalpage+$this->nowindex)

$begin=$this->nowindex-$plus+1

$begin=($begin>=1)?$begin:1

$return=''

for($i=$begin$i<$begin+$this->pagebarnum$i++)

{

if($i<=$this->totalpage){

if($i!=$this->nowindex)

$return.=$this->_get_text($this->_get_link($this->_get_url($i),$i,$style))

else

$return.=$this->_get_text('<span class="'.$nowindex_style.'">'.$i.'</span>')

}else{

break

}

$return.="\n"

}

unset($begin)

return $return

}

/**

* 获取显示跳转按钮的代码

*

* @return string

*/

function select()

{

$return='<select name="PB_Page_Select" onchange="self.location.href=\''.$this->url.'\'+this.opti*****[this.selectedIndex].value ">'

for($i=1$i<=$this->totalpage$i++)

{

if($i==$this->nowindex){

$return.='<option value="'.$i.'" selected>'.$i.'</option>'

}else{

$return.='<option value="'.$i.'">'.$i.'</option>'

}

}

unset($i)

$return.='</select>'

return $return

}

/**

* 获取mysql 语句中limit需要的值

*

* @return string

*/

function offset()

{

return $this->offset

}

/**

* 控制分页显示风格(你可以增加相应的风格)

*

* @param int $mode

* @return string

*/

function show($mode=1,$style='',$nowindex_style='')

{

switch ($mode)

{

case '1':

$this->next_page='下一页'

$this->pre_page='上一页'

$this->first_page='首页'

$this->last_page='尾页'

return $this->first_page($style,$nowindex_style)." ".$this->pre_page($style,$nowindex_style)." ".$this->next_page($style,$nowindex_style)." ".$this->last_page($style,$nowindex_style).' (当前第<span style="color:#C16012font-size:12pt">'.$this->nowindex.'</span>页 共<span style="color:#C16012font-size:12pt">'.$this->totalpage.'</span>页 <span style="color:#C16012font-size:12pt">'.$this->total.'</span>条记录)'

break

case '2':

$this->next_page='下一页'

$this->pre_page='上一页'

$this->first_page='首页'

$this->last_page='尾页'

return $this->first_page($style,$nowindex_style)." ".$this->pre_page($style,$nowindex_style)." ".$this->next_page($style,$nowindex_style)." ".$this->last_page($style,$nowindex_style).' 第'.$this->select().'页 (当前第<span style="color:#C16012font-size:12pt">'.$this->nowindex.'</span>页 共<span style="color:#C16012font-size:12pt">'.$this->totalpage.'</span>页 <span style="color:#C16012font-size:12pt">'.$this->total.'</span>条记录)'

break

case '3':

$this->next_page='下一页'

$this->pre_page='上一页'

$this->first_page='首页'

$this->last_page='尾页'

return $this->pre_page($style,$nowindex_style)." ".$this->nowbar($style,$nowindex_style)." ".$this->next_page($style,$nowindex_style).' (当前第<span style="color:#C16012font-size:12pt">'.$this->nowindex.'</span>页 共<span style="color:#C16012font-size:12pt">'.$this->totalpage.'</span>页 <span style="color:#C16012font-size:12pt">'.$this->total.'</span>条记录)'

break

case '4':

$this->next_page='下一页'

$this->pre_page='上一页'

return $this->pre_page($style,$nowindex_style)." ".$this->nowbar($style,$nowindex_style)." ".$this->next_page($style,$nowindex_style).' 第'.$this->select().'页 (当前第<span style="color:#C16012font-size:12pt">'.$this->nowindex.'</span>页 共<span style="color:#C16012font-size:12pt">'.$this->totalpage.'</span>页 <span style="color:#C16012font-size:12pt">'.$this->total.'</span>条记录)'

break

case '5':

$this->next_page='>'

$this->pre_page='<'

$this->first_page='<<'

$this->last_page='>>'

return $this->first_page($style,$nowindex_style)." ".$this->pre_page($style,$nowindex_style)." ".$this->nowbar($style,$nowindex_style)." ".$this->next_page($style,$nowindex_style)." ".$this->last_page($style,$nowindex_style).' (当前第<span style="color:#C16012font-size:12pt">'.$this->nowindex.'</span>页 共<span style="color:#C16012font-size:12pt">'.$this->totalpage.'</span>页 <span style="color:#C16012font-size:12pt">'.$this->total.'</span>条记录)'

break

case '6':

$pagehtml="<div>"

if($this->nowindex>1)

{

$pagehtml.="<span class=\"pagenum-l\"><a href=\"{$this->_get_url($this->nowindex-1)}\"><img src=\"images/page_up.gif\" /></a></span>"

}

else

{

$pagehtml.="<span class=\"pagenum-l\"><img src=\"images/page_up.gif\" /></span>"

}

$pagehtml.="<span class=\"pagenum-c\">"

$pagehtml.="<table><tr>"

$plus=ceil($this->pagebarnum/2)

if($this->pagebarnum-$plus+$this->nowindex>$this->totalpage)$plus=($this->pagebarnum-$this->totalpage+$this->nowindex)

$begin=$this->nowindex-$plus+1

$begin=($begin>=1)?$begin:1

for($i=$begin$i<$begin+$this->pagebarnum$i++)

{

if($i<=$this->totalpage){

if($i!=$this->nowindex)

$pagehtml.="<td><a href=\"{$this->_get_url($i)}\">{$i}</a></td>"

else

$pagehtml.="<td>{$i} </td>"

}else{

break

}

$pagehtml.="\n"

}

unset($begin)

$pagehtml.="</tr></table>"

$pagehtml.="</span>"

if($this->nowindex<$this->totalpage)

{

$pagehtml.="<span class=\"pagenum-r\"><a href=\"{$this->_get_url($this->nowindex+1)}\"><img src=\"images/page_down.gif\" /></a></span>"

}

else

{

$pagehtml.="<span class=\"pagenum-r\"><img src=\"images/page_down.gif\" /></span>"

}

$pagehtml.="</div>"

return $pagehtml

break

}

}

/*----------------private function (私有方法)-----------------------------------------------------------*/

/**

* 设置url头地址

* @param: String $url

* @return boolean

*/

function _set_url($url="")

{

if($this->page_webmode!="php"&&$url!=""){

$this->url=$url

}

else{

if(!empty($url)){

//手动设置

$this->url=$url.((stristr($url,'?'))?'&':'?').$this->page_name."="

}else{

//自动获取

if(empty($_SERVER['QUERY_STRING'])){

//不存在QUERY_STRING时

$this->url=$_SERVER['REQUEST_URI']."?".$this->page_name."="

}else{

//

if(stristr($_SERVER['QUERY_STRING'],$this->page_name.'=')){

//地址存在页面参数

$this->url=str_replace($this->page_name.'='.$this->nowindex,'',$_SERVER['REQUEST_URI'])

$last=$this->url[strlen($this->url)-1]

if($last=='?'||$last=='&'){

$this->url.=$this->page_name."="

}else{

$this->url.='&'.$this->page_name."="

}

}else{

//

$this->url=$_SERVER['REQUEST_URI'].'&'.$this->page_name.'='

}//end if

}//end if

}//end if

}

}

/**

* 设置当前页面

*

*/

function _set_nowindex($nowindex)

{

if(empty($nowindex)){

//系统获取

if(isset($_GET[$this->page_name])){

$this->nowindex=intval($_GET[$this->page_name])

}

}else{

//手动设置

$this->nowindex=intval($nowindex)

}

}

/**

* 为指定的页面返回地址值

*

* @param int $pageno

* @return string $url

*/

function _get_url($pageno=1)

{

if($this->page_webmode=="php"||$this->page_webmode==""){

return $this->url.$pageno

}

else{

return $this->url.(($pageno==1)?"":"_".$pageno).".".$this->page_webmode

}

}

/**

* 获取分页显示文字,比如说默认情况下_get_text('<a href="">1</a>')将返回[<a href="">1</a>]

*

* @param String $str

* @return string $url

*/

function _get_text($str)

{

return $this->format_left.$str.$this->format_right

}

/**

* 获取链接地址

*/

function _get_link($url,$text,$style=''){

$style=(empty($style))?'':'class="'.$style.'"'

return '<a '.$style.' href="'.$url.'">'.$text.'</a>'

}

/**

* 出错处理方式

*/

function error($function,$errormsg)

{

die('Error in file <b>'.__FILE__.'</b>,Function <b>'.$function.'()</b>:'.$errormsg)

}

}

?>

调用方法:

<?

include("classpage.php")

$queryrow = $DB->query("SELECT * FROM article where article_sortid='$cls' and type='1' ORDER BY article_id DESC")

$rows=$DB->num_rows($queryrow)

$total=$rows

$pagesize=15

$currentRow = empty($_GET['page']) ? 0 : ($_GET['page']-1)* $pagesize

$queryId = $DB->query("SELECT * FROM article where article_sortid='$cls' and type='1' ORDER BY article_id DESC limit $currentRow,$pagesize")

$iiii=1

while ($a_array=$DB->fetch_array($queryId)) {

?>

<table width="674" border="0" cellspacing="0" cellpadding="0" height="30px">

<tr>

<td width="54"></td>

<td width="87" align="center" class="news" style="font-size:12px">

<?php

if($iiii>10)

{

echo $iiii

}

else

{

echo '0'.$iiii

}

?>

</td>

<td width="371" class="news" style="font-size:12px"><a href="newslist.php?id=<?=$a_array[article_id]?>"><?=$a_array['article_title']?></a></td>

<td width="73" class="news" style="font-size:12px"><?=$a_array['article_hits']?></td>

<td width="89" class="news" style="font-size:12px"><?=substr($a_array['article_addtime'],0,10)?></td>

</tr>

</table>

<?php

$iiii++

}

if ($iiii==1) echo "抱歉,没有搜索到任何信息。"

?>

<table width="720" border="0" cellspacing="0" cellpadding="0">

<tr>

<td class="dibu" align="center" valign="top">

<table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>

<td width="52%" height="10" align="center"></td>

<td width="48%" align="center"></td>

</tr>

<tr>

<td height="28" colspan="2" align="center" valign="bottom" style="font-size:12px">

<?php

$page=new page(array('total'=>$total,'perpage'=>$pagesize))

$pagehtml=$page->show(6,"page","curr")

echo $pagehtml

?>

这个是调用方法

$pagehtml=$page->show(6,"page","curr")看到这个没有 里面是6 我调用的是6这种方法显示的 里面可以选择0 ,1, 2, 3, 4, 5, 6, 六中方法分页显示不同 具体的你可以试试 我目前用6的比较多点 呵呵


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10039301.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存