返回列表 回复 发帖

flash后台数据连接(PHP篇)之php&flash收藏夹---amfphp实现+mysql

这里就不多说了,应该很容易就可以看懂了!这里没有用TextArea而改用了DataGrid! :-) 刚学会!
  1. import mx.remoting.Service;
  2. import mx.services.Log;
  3. import mx.rpc.RelayResponder;
  4. import mx.rpc.FaultEvent;
  5. import mx.rpc.ResultEvent;
  6. import mx.remoting.PendingCall;
  7. import mx.remoting.debug.NetDebug;
  8. import mx.controls.Alert; //加入Alert,以便弹出一个提示信息
  9. //Initialize a Logger
  10. mx.remoting.debug.NetDebug.initialize(); // initialize the NCD
  11. var myLogger:Log = new Log( Log.DEBUG, "logger1" );
  12. // override the default log handler
  13. myLogger.onLog = function( message:String ):Void {
  14. trace( "myLogger-->>>"+message );
  15. }
  16. //设定全局Service
  17. _global.svc = new Service(  
  18.   "http://localhost/amfphp/gateway.php",
  19.    myLogger,
  20.    "favorite",
  21.    null,
  22.    null);
  23. /**
  24. * 设定添加按钮的动作
  25. */
  26. append_btn.onRelease = function(){
  27. var pc:PendingCall = svc.append(webname_txt.text,url_txt.text); //呼叫php中的append方法
  28. pc.responder = new RelayResponder(this, "append_Result", "onError");
  29. webname_txt.text = url_txt.text = ""; //清空文本框
  30. }
  31. append_Result = function(re:ResultEvent){  //添加按钮响应结果
  32. var id = re.result;
  33. if(id != "error"){
  34.   mx.controls.Alert.show ("保存:"+id+" ->成功", "Debug Message", Alert.YES, _root, false, "prueba", Alert.OK);
  35.   refresh_data(); //刷新数据
  36. }
  37. else {
  38.   mx.controls.Alert.show ("技术原因未成保存", "Debug Message", Alert.YES, _root, false, "prueba", Alert.OK);
  39. }

  40. }
  41. /***
  42. * 刷新按钮
  43. */
  44. refresh_btn.onRelease = function(){
  45. favorite_dg.removeAllColumns();
  46. refresh_data();
  47. }
  48. /**
  49. * 刷新数据
  50. */
  51. function refresh_data(){
  52. var pc:PendingCall = svc.get_data();
  53. pc.responder = new RelayResponder(this, "getData_Result", "onError" );
  54. }
  55. /***
  56. * 接收数据显示
  57. */
  58. function getData_Result(re: ResultEvent){
  59. var rs = re.result;
  60. favorite_dg.columnNames = ["id_PK", "webname", "url", "timeline"];
  61. favorite_dg.dataProvider = rs;

  62. /* 遍历方法
  63. f = rs.length; //数库集大小
  64. for(var i=0; i<f; i++){  
  65.   favorite_dg.addItem({id_PK:rs.getItemAt(i).id_PK, webname:rs.getItemAt(i).webname, url:rs.getItemAt(i).url, timeline:rs.getItemAt(i).timeline});
  66. }
  67. */
  68. }
  69. /***
  70. * 出错 :-(
  71. */
  72. function onError(rs: FaultEvent){
  73. mx.remoting.debug.NetDebug.trace({level:"None", message:"There was a problem: " + fault.fault.faultstring });
  74. }
  75. refresh_data();  //初始数据
  76. stop();
复制代码
php的的服务
  1. <?php
  2. /***
  3. * php & flash 收藏夹 之amfphp实现+MySql
  4. *
  5. * 这里要实现的功能是,用flash来展示和通过php来读写文本来
  6. * 实现一个收藏夹的功能
  7. *
  8. * 数据的储存结构
  9. * id_PK,webname,url,timeline
  10. */
  11. class favorite
  12. {
  13. var $dbhost = "localhost"; //数据库地址
  14. var $dbname = "favorite"; //数据库名称
  15. var $dbuser = "root";  //数据库用户名
  16. var $dbpass = "";   //数据库密码
  17. var $conn; //数据库连
  18. function favorite(){
  19.   $this->methodTable = array(
  20.    "get_data" => array(
  21.     "description" => "Returns data",
  22.     "access" => "remote",
  23.     "returntype" => "recordSet" //返回数据为数据集(上例为字符串)
  24.    ),
  25.    "append" => array(
  26.     "description" => "Inserts a Data",
  27.     "access" => "remote",
  28.     "arguments" => array ("name", "url"), // 需要两个参数
  29.     "returntype" => "String"
  30.    ),
  31.   );
  32.   //连接数据库
  33.   $this->conn = mysql_pconnect($this->dbhost, $this->dbuser, $this->dbpass);
  34.   //$this->conn = mysql_pconnect($this->dbhost, $this->dbuser, $this->dbpass);
  35.   mysql_select_db ($this->dbname);
  36. }

  37. /**
  38. * 实现添加的功能
  39. * @ $name : 收藏的网站名
  40. * @ $url : 网址
  41. */
  42. function append($name,$url){
  43.   $rs = mysql_query("INSERT INTO tbl_favorite(webname,url) VALUES('".$name."', '".$url."')");
  44.   if(mysql_error()) return "error";
  45.   else return $name;
  46. }
  47. /***
  48. * 实现读取功能
  49. * 返回:数组
  50. */
  51. function get_data(){
  52.    return mysql_query("SELECT * FROM tbl_favorite");
  53. }
  54. }
  55. //debug
  56. //$f = new favorite;
  57. //print_r($f->get_data());
  58. //$f->append("korptons blog","http://www.oiasoft.com");
  59. ?>

复制代码

tutor_favorite3.rar (369.86 KB)

http://www.oiasoft.com

http://www.celesteteam.com/

少了一个mysql

  1. -- phpMyAdmin SQL Dump
  2. -- version 2.8.2
  3. -- http://www.phpmyadmin.net
  4. --
  5. -- 主机: localhost
  6. -- 生成日期: 2007 年 04 月 08 日 13:04
  7. -- 服务器版本: 5.0.19
  8. -- PHP 版本: 5.0.4
  9. --
  10. -- 数据库: `favorite`
  11. --

  12. -- --------------------------------------------------------

  13. --
  14. -- 表的结构 `tbl_favorite`
  15. --

  16. CREATE TABLE `tbl_favorite` (
  17.   `id_PK` int(11) unsigned NOT NULL auto_increment,
  18.   `webname` varchar(20) NOT NULL,
  19.   `url` varchar(100) NOT NULL,
  20.   `timeline` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  21.   PRIMARY KEY  (`id_PK`)
  22. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

  23. --
  24. -- 导出表中的数据 `tbl_favorite`
  25. --

  26. INSERT INTO `tbl_favorite` (`id_PK`, `webname`, `url`, `timeline`) VALUES (1, 'korptons blog', 'http://www.oiasoft.com/', '2007-04-08 12:21:17'),
  27. (2, 'yahoo', 'http://cn.yahoo.com', '2007-04-08 12:12:33'),
  28. (3, 'kk', 'http://ww', '2007-04-08 12:45:33'),
  29. (4, 'kfc', 'http://www.kfc.com.cn', '2007-04-08 12:46:52');
复制代码
http://www.oiasoft.com

http://www.celesteteam.com/
这个应该加分  这个方面的教材太少了· ·

3q```
返回列表