一.数据表说明
例子采用了Access数据库,当然你也可以使用mysql或其他类型数据库,数据库名称为:demo.mdb,表名为product,创建字段分别是PRODUCT_ID,PRODUCT_NAME,PRODUCT_PRICE,PRODUCT_AREA。
二.实现数据查询
首先启动AJAXWebShop3,在File中选择“NewProject”建立新工程。
图1
在弹出的NewProject对话框中设置projectname和webserver本例中设置projectname为:php_example和设置webserver为:PHP。如果要修改工程路径,请在Directory中设置要存放的路径。
图2
设置好NewProject后,再打开“File”选择“New.PHPService”,在弹出的对话框内目录输入子目录demo,设置”ClassName”为:simple_query;在ServiceType中选择“QueryData”点击“OK“后,向导将按默认模板生成php单表查询的代码。
图3
输入以下数据库连接及sql代码(demo.mdb文件放在当前代码目录下):$c.realpath($_SERVER['PATH_TRANSLATED'])."demo.mdb";
$sql="select*fromproduct";
$sqlcount="selectcount(*)fromproduct";
分析testquery.php代码,主要的实现如下:
1.循环数据结构,用addField向$xmlRequest填充字段(列)://fillmetadatafields
复制代码 代码如下:for($i=1;$i<=$fields_count;$i++){
$fieldname=odbc_field_name($result_id,$i);
$datatype=odbc_field_type($result_id,$i);
$xmlRequest->addField($fieldname,$datatype);
}
2.循环结果集记录,调用Append(),SetValue方法,向xmlrequest每一行对应字段填充数据://filldatarows
复制代码 代码如下:for($i=0;$i<$record_count;$i++){
odbc_fetch_row($result_id);
if($i>=$recNo&&$i<$recNo+$maxRows){
$xmlRequest->append();
for($j=1;$j<=$fields_count;$j++){
$xmlRequest->setValueByIndex($j-1,odbc_result($result_id,$j));
}
}
if($i>=$recNo+$maxRows)break;
}
3.设置分页的相关参数,$xmlRequest->recNo是开始记录,$xmlRequest->maxRows是每页记录数,通过执行"selectcount(*)fromproduct"得到$record_count记录总数:复制代码 代码如下:$sqlcount="selectcount(*)fromproduct";
$result_id=@odbc_do($connid,$sqlcount);
if($result_id==null)
thrownewException($sqlcount);
odbc_fetch_row($result_id);
$record_count=odbc_result($result_id,1);
$xmlRequest->setRecordCount($record_count);
$recNo=$xmlRequest->recNo;
$maxRows=$xmlRequest->maxRows;
if($maxRows==-1)$maxRows=$record_count;
后台数据访问类建立好后,在“File”中选择“NewPage”打开“NewPage”对话框在“FileName”中设置页面名称,如本例“simple.htm”点击ok完成设置。
未完)
原文出自http://cn.joyistar.com