我有个access表,要读数据库并建个二级联动菜单,父菜单用了一个while和movenext()循环读取,有一个父菜单下有子菜单项,也有while和movenext()循环读取,可以就不行了,PHP报错不能运行!代码大概如下:$sql="select * from Channel where f_id=0 order by id";
$readlist=new readAccess(); //此处用一个类实现读取Access
$readlist->db_open();
$readlist->rs_open($sql,1,1);
if(!$readlist->rs_eof()) { while (!$readlist->rs_eof()) {
if ($GLOBALS["about_id"]==strval($readlist->rs("id")))
echo " <span class='dq'>· ".$readlist->rs("title")."</a></span><div class=\"line\"></div>";
else {
echo " <a href='?pid=".$readlist->rs("id")."'>+ ".$readlist->rs("title")."</a><div class=\"line\"></div>";
}
$sql3="select * from Channel where f_id<>0 and f_id=".$readlist->rs("id")." order by id";
$readlist3=new readAccess();
$readlist3->conn_execute($sql3);
if(!$readlist->rs_eof()) {
while(!$readlist->rs_eof()) {
echo " <a href='?pid=".$readlist3->rs("id")."'>- ".$readlist3->rs("title")."</a><div class=\"line\"></div>";
$readlist3->rs_movenext();
}
}
$readlist->rs_movenext(); } }ACCESS表结构大概如下:
/***************************************/
字段名:id title f_id
第一行:1 公司概况 0
第二行:2 公司章程 0
第三行:3 公司相册 0
第四行:4 组织机构 0
第五行:5 领导关怀 3
第六行:6 业务活动 3
/***************************************/请高手赐教,本人是新手。
$readlist=new readAccess(); //此处用一个类实现读取Access
$readlist->db_open();
$readlist->rs_open($sql,1,1);
if(!$readlist->rs_eof()) { while (!$readlist->rs_eof()) {
if ($GLOBALS["about_id"]==strval($readlist->rs("id")))
echo " <span class='dq'>· ".$readlist->rs("title")."</a></span><div class=\"line\"></div>";
else {
echo " <a href='?pid=".$readlist->rs("id")."'>+ ".$readlist->rs("title")."</a><div class=\"line\"></div>";
}
$sql3="select * from Channel where f_id<>0 and f_id=".$readlist->rs("id")." order by id";
$readlist3=new readAccess();
$readlist3->conn_execute($sql3);
if(!$readlist->rs_eof()) {
while(!$readlist->rs_eof()) {
echo " <a href='?pid=".$readlist3->rs("id")."'>- ".$readlist3->rs("title")."</a><div class=\"line\"></div>";
$readlist3->rs_movenext();
}
}
$readlist->rs_movenext(); } }ACCESS表结构大概如下:
/***************************************/
字段名:id title f_id
第一行:1 公司概况 0
第二行:2 公司章程 0
第三行:3 公司相册 0
第四行:4 组织机构 0
第五行:5 领导关怀 3
第六行:6 业务活动 3
/***************************************/请高手赐教,本人是新手。
$about_id=intval($_GET["pid"]); //网址查询字符串
请大家帮帮忙,小弟我实在找不出错误在哪,
我把类代码也放上。****************************************
<?php
include_once("conn.inc.php");
class readAccess {function db_open(){
//连接数据库
$GLOBALS["conn"] = new com("ADODB.Connection");
$connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=".realpath($GLOBALS["db"]);
//$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".realpath($GLOBALS["db"]);
$GLOBALS["conn"]->open($connstr);
$GLOBALS["rs"] = new com("ADODB.RecordSet");
}
function db_close(){
//关闭数据库
$GLOBALS["conn"]->close();
}
function conn_execute($sql){
//执行sql
$GLOBALS["conn"]->Execute(iconv("gb2312","UTF-8",$sql));
}
function rs_open($sql,$cursorType,$lockType){
//RecordSet的open方法
$GLOBALS["rs"]->Open($sql,$GLOBALS["conn"],$cursorType,$lockType);
}
function rs_close(){
//关闭RecordSet
$GLOBALS["rs"]->close();
}
function rs_recordcount() {
//RecordSet的recordcount方法
return $GLOBALS["rs"] -> recordcount();
}
function rs_eof(){
//RecordSet eof或bof
return $GLOBALS["rs"] -> eof||$GLOBALS["rs"] -> bof?true:false;
}
function rs_move($n){
//移动指针
$GLOBALS["rs"]->Move($n);
}
function rs_movenext(){
//移动指针+1
$GLOBALS["rs"]->MoveNext();
}
function rs($fieldName){
//移动指获取指定字段值
return iconv("gb2312","UTF-8",$GLOBALS["rs"]->Fields[$fieldName]->Value);
}
}
?>**********************************不懂怎么就是不能用两个movenext.