重庆职教网-教学部-教程

Flash组件与phpmysql数据库amfphp的应用

  • flash影片与Mysql数据库的链接方法,读取信息桥梁是php5脚本链接的Amfphp模块。
  • php的安装要全的版本有4个文件。设置支持mysql和amfphp模块安装。
  • 再Apache2的环境服务器系统里做flash cs3 文档,和php文档。
  • 先建数据库和表。在php用语言来建比较直观一点。
  • $hostname = "localhost";
    $username = "root";
    $password = "sa123";
    $con = mysql_pconnect($hostname, $username, $password);
    if($con){echo "连接mysql服务器成功!<br>";}else{echo "连接mysql服务器出现错误,请检查。<br>";}
  • // 数据库名称:phpFlash
    // 数据表名: wenZhang
    // 字段名有: id feiLei biaoTi neiRong yongHu yuedu laiYuan fBriqi
    // 编号 分类 标题 内容 用户 阅读数 来源地 发表日期
    $sqlku = "CREATE DATABASE phpFlash;";
    $inretku = mysql_query($sqlku);
    if($inretku){echo "创建了一个phpFlash数据库成功!<br>";}else{echo "创建数据库出现错误,请检查。<br>";}
  • $strsqlBiao = "CREATE TABLE `wenZhang` (
    `id` int(11) NOT NULL auto_increment,
    `feiLei` varchar(26) character set utf8 COLLATE utf8_general_ci NOT NULL,
    `biaoTi` varchar(60) character set utf8 COLLATE utf8_general_ci NOT NULL,
    `neiRong` text character set utf8 COLLATE utf8_general_ci NOT NULL,
    `yongHu` varchar(26) character set utf8 COLLATE utf8_general_ci NOT NULL,
    `yuedu` int(4) NOT NULL,
    `laiYuan` varchar(60) character set utf8 COLLATE utf8_general_ci NOT NULL,
    `fBriqi` date NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM;";
    mysql_select_db("phpFlash", $con);
    $inretbiao = mysql_query($strsqlBiao);
    if($inretbiao){echo "创建了一个文章表成功!<br>";}else{echo "创建表出现错误,请检查。<br>";}
  • 建好了表和库就有插入数据记录,还是用php来插入数据,目的是检查数据的正确性,有时出现中文乱码现象好及时处理。
  • 先做一张表单见图;
  • 插入数据表的php代码;
  • if(($_POST['button2'] == '提交')&&($_POST['biaoti'] != "")){
    require_once('connfig.php');
    // 字段名有: id feiLei biaoTi neiRong yongHu yuedu laiYuan fBriqi
    // 编号 分类 标题 内容 用户 阅读数 来源地 发表日期
    $a1 = $_POST['fenLei'];
    $a2 = $_POST['biaoti'];
    $a3 = $_POST['neirong'];
    $a4 = $_POST['yonghu'];
    $a5 = $_POST['yuedu'];
    $a6 = $_POST['laiyuan'];
    $a7 = $_POST['fbriqi'];
    $sqlRs = "INSERT INTO `wenzhang`(feiLei, biaoTi, neiRong, yongHu, yuedu, laiYuan, fBriqi) VALUES ('$a1', '$a2', '$a3', '$a4', '$a5', '$a6', '$a7');";
    $Rs = mysql_query($sqlRs, $con) or die(mysql_error());
    }
  • 测试插入数据,成功。然后还有做一张是显示表的php文档看看结果。
  • require_once('connfig.php');
    $query_Rs = "SELECT * FROM wenzhang";
    $Rs = mysql_query($query_Rs, $con) or die(mysql_error());
    $row_Rs = mysql_fetch_assoc($Rs);
    $totalRows_Rs = mysql_num_rows($Rs);
  • <?php do { ?>
    <tr>
    <td height="28" align="center"><?php echo $row_Rs['id']; ?></td>
    <td><?php echo $row_Rs['feiLei']; ?></td>
    <td><?php echo $row_Rs['biaoTi']; ?></td>
    <td align="center"><?php echo $row_Rs['yuedu']; ?></td>
    <td align="center"><a href="c_XiugaiBiao.php?xgid=<?php echo $row_Rs['id']; ?>">修改</a> 删除</td>
    </tr>
    <?php } while ($row_Rs = mysql_fetch_assoc($Rs)); ?>
  • 结果出来了。
  • 现在应该来做flashcs3的插入数据和显示数据影片。
  • flash的界面图片效果图。
  • 下面是As3脚本。
  • import fl.managers.StyleManager;
  • var tf:TextFormat = new TextFormat();///- 设置字符 -
    tf.color = 0x000000;// 黑色
    tf.size = 12;
    tf.font = "Arial Baltic,宋体";
    ///tf_biaot.bold = true;
    StyleManager.setStyle("textFormat",tf);
  • ////=====AspVBScript","phpMysql","FlashFlex","FlashAs3游戏","数据库服务器============
    fabu.addEventListener(MouseEvent.CLICK, fabuCK);///侦听按钮
    function fabuCK(event:MouseEvent) {
    //trace("标题的按钮"+ event.currentTarget.name);
    var s1:String= fenLei.text;
    var s2:String= biaoti.text;
    var s3:String= neirong.text;
    var s4:String= faburen.text;
    var s5:String= laiyuan.text;
    //trace (s1);
    //--连接PHP的主文件gateway.php解释处理
    var gateway_url:String = "http://localhost/amfphp/gateway.php";
    var geteway_conn:NetConnection = new NetConnection();
  • geteway_conn.connect(gateway_url);
    geteway_conn.call("phpFlashXinXi.chaRu", new Responder(onResult, onFault),s1,s2,s3,s4,s5);
  • }
    function onResult(result:String):void {
    //trace("插入信息成功!");
    biaoti.text="";
    neirong.text="";
    faburen.text="";
    laiyuan.text="";
    tishi.text="★ 插入数据成功!";
    }
    function onFault(result:String):void {
    //trace("出现错误哦。");
    tishi.text="插入数据出现错误了!";
    }
  • 还不要忙去测试,还有php的脚本没有写,在C:\Apache2\htdocs\amfphp\services写脚本文件。
  • phpFlashXinXi.php
  • //--添加信息--插入记录---
    // 字段名有: id feiLei biaoTi neiRong yongHu yuedu laiYuan fBriqi
    // 编号 分类 标题 内容 用户 阅读数 来源地 发表日期
    class phpFlashXinXi
    {
    function chaRu($fl,$bt,$nr,$yh,$ly)
    {
    $aarq = date("Y-m-d");
    mysql_pconnect("localhost","root","sa123");
    mysql_select_db("phpFlash");
  • $sqlRs = "INSERT INTO wenzhang(feiLei, biaoTi, neiRong, yongHu, yuedu, laiYuan, fBriqi) VALUES ('$fl','$bt', '$nr', '$yh', '1', '$ly', '$aarq');";
    $Rs = mysql_query($sqlRs);
    if($Rs){
    return "ok";
    }
    }
    }
    现在就可以flash影片测试了,看看结果用前面的php文档来显示,就知道结果是不是插入了数据。
  • ----读出数据-----
  • 插入数据是很重要的,读出数据更重要。
    读出数据要显示在影片的什么地方,有很多的方法。用组件是最简单的,我也是显示在组件里。
  • ///读取数据库信息======直接用的按钮在属性实例名写上按钮名加上侦听===
  • flashAs3语句

  • import fl.managers.StyleManager;
  • var tf:TextFormat = new TextFormat();///- 设置字符 -
    tf.color = 0x000000;// 黑色
    tf.size = 12;
    tf.font = "Arial Baltic,宋体";
    StyleManager.setStyle("textFormat",tf);///-全部组件的字符设置-
  • ///读取数据库信息=========
    AspVBScript.addEventListener(MouseEvent.CLICK, ddhmcCk);
    FlashFlex.addEventListener(MouseEvent.CLICK, ddhmcCk);
    phpMysql.addEventListener(MouseEvent.CLICK, ddhmcCk);
    FlashAs3游戏.addEventListener(MouseEvent.CLICK, ddhmcCk);
    数据库服务器.addEventListener(MouseEvent.CLICK, ddhmcCk);
    function ddhmcCk(event:MouseEvent):void {
    ///trace(event.currentTarget.name);
    var ss:String = event.currentTarget.name;
    callAmfPHP(ss);
    }
    //--连接PHP的主文件gateway.php解释处理
    var gateway_url:String = "http://localhost/amfphp/gateway.php";
    var geteway_conn:NetConnection = new NetConnection();
    ////调PHP连接的数据库
    function callAmfPHP(str:String):void {
    geteway_conn.connect(gateway_url);
    geteway_conn.call("phpFlashXinXi.xianShiLei", new Responder(onRok, onFerr),str);
    }
    //正确获得数据方法一onResult是有数据获取成功---onFault没有数据Object
    function onRok(resu:Array):void {
    ///trace(resu[0]["biaoTi"]);
    for (var i:int = 0; i<resu.length; i++) {
    jiluList.addItem( { label: resu[i]["biaoTi"], data: resu[i]["neiRong"]} );
    }
    }
    function onFerr(resu:Object):void {
    trace("amfphp-error");
    }
    jiluList.addEventListener(Event.CHANGE, Cklist);
  • function Cklist(event:Event):void {
    neirong.text = event.target.selectedItem.data;
    }
    ///-----登陆框-------

  • php文档在同上一章的情况一样。加在phpFlashXinXi.php文件里。
  • function xianShiLei($LeiMing){
    $conn = mysql_pconnect("localhost","root","sa123");
    mysql_select_db("phpFlash", $conn);
    $chalei = "SELECT * FROM wenzhang WHERE feiLei = '".$LeiMing."' ORDER BY id DESC";

    $jieG = mysql_query($chalei, $conn);
    $arrjieg = array();

    if ($jieG) {
    while($data = mysql_fetch_array($jieG, MYSQL_ASSOC))
    {
    array_push($arrjieg,$data);
    }
    return $arrjieg;
    }else{
    return "SQL-error!";
    }
    }//xianShiLei
  • 运行flash。结果;
  • 接下来要做的事是发布信息,就是前面的插入记录。那不是谁都可以发文章的,还是常规需要登录才可以操作发文章。
  • 做一个登录框,管理名和密码正确进入插入记录。

不说是学生不认真,是不是很好记,常犯的错误是做这儿把那儿搞忘了。

推荐学生的基础教程按步骤的做。

有一些细节没有写,是我的学生应该能看懂,课堂上的一大堆我在这里理一理。