AJAX for PHP简单表数据查询实例

时间:2021-05-28

功能介绍:AJAXWebShop3从Beta2开始支持PHP的开发了,AJAXWebShop集成了PHP5的开发环境,因此不需要额外安装配置PHP,本例将实现一个AJAXforPHP的简单数据查询操作,这个例子是单表操作,也可以实现主从表的数据查询。

一.数据表说明
例子采用了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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章