仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1270|回复: 20
打印 上一主题 下一主题

[学习教程] PHP教程之依据数据库主动生成INSERT/UPDATE更新语...

[复制链接]
只想知道 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:18:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
告诉你了一个方式,但是缺少努力这一环节,那也是白搭。数据|数据库|语句   在编写法式中,写添加和更新SQL语句是一个对照烦琐的进程,出格是在表布局对照庞杂的时分
这个法式次要是依据数据表格局主动生成添加/更新的SQL语句,然后由法式员直接到场到法式中,便利编程

上面是文件,办法创立一个独自的文件,依照上面的申明创立相干文件,运转便可
index.php     索引文件
config.php    设置装备摆设文件,转换get/post数据
addxxx.php    依据提交表格数据生成SQL语句
addxxx2.php    依据数据库表信息生成SQL语句,设置装备摆设数据库在文件外部

@author bluemaple<bluemaple@xinhuanet.com>
----------------------------------------------------------
index.php文件
----------------------------------------------------------
主动生成模版
<br><br>
<a href=addxxx.php>主动生成添加表格,并发生相干sql添加语句,生成UPDATE语句(复杂版)</a>
<br><br>
<a href=addxxx2.php>更数据表生成相干添加页面</a>
----------------------------------------------------------

config.php文件
----------------------------------------------------------
<?
/* 转换get和post数据 */
if (!defined('PMA_GRAB_GLOBALS_INCLUDED'))
{
    define('PMA_GRAB_GLOBALS_INCLUDED', 1);

    if (!empty($_GET))
    {
        extract($_GET);
    }
    else if (!empty($HTTP_GET_VARS))
    {
        extract($HTTP_GET_VARS);
    } // end if

    if (!empty($_POST))
    {
        extract($_POST);
    }
    else if (!empty($HTTP_POST_VARS))
    {
        extract($HTTP_POST_VARS);
    } // end if

    if (!empty($_FILES))
    {
        while (list($name, $value) = each($_FILES))
        {
            $$name = $value['tmp_name'];
        }
    }
    else if (!empty($HTTP_POST_FILES))
    {
        while (list($name, $value) = each($HTTP_POST_FILES))
        {
            $$name = $value['tmp_name'];
        }
    } // end if
}

?>
----------------------------------------------------------
addxxx.php
----------------------------------------------------------
<?
    include("config.php");

    if($action == "")
    {
        echo "<form action=addxxx.php method=get onSubmit=\"if(n.value==''){alert('请输出数字');return false;}else return true;\">
                添加的表数量:<input type=text name=n value=1><br>
                <input type=hidden name=action value='c'>
                <input type=submit name=createSubmit value='生成'>
                </form>";
        exit();
    }
   
    if($action == "c")
    {
        echo "<form method=post action=addxxx.php>";
        echo "    添加到数据表:<input type=text name=t><br>
                办法(METHOD):<input type=text name=m value=post><br>
                提交表到(ACTION):<input type=text name=a value='<? echo \$HTTP_SERVER_VARS[PHP_SELF] ?>'><br><br>";
        echo "<table border=1>";
        echo "<tr><td>编号</td><td>申明</td><td>表名(TableName)</td><td>值(VALUE)</td></tr>";
        for($i = 1; $i<=$n; $i++)
        {
            echo "<tr>";
            echo "<td>$i</td>";
            echo "<td><input name=e$i type=text></td>";
            echo "<td><input name=n$i type=text></td>";
            echo "<td><input name=v$i type=text></td>";
            echo "</tr>";
        }
        echo "<tr><td colspan=3 align=center><input type=submit name=submit value='确 定'></td></tr>";
        echo "</table>";
        echo "<input type=hidden name=n value='$n'>";
        echo "<input type=hidden name=action value='a'>";
        echo "</form>";
    }
   
    if($action == "a")
    {
        echo "<h3>生成的拔出SQL语句</h3>";
        if($submit)
        {
            if($t == "") $t = "TABLE";
            $tName = "";
            $tValue= "";
            
            // table ...
            for($i = 1; $i <= $n; $i++)
            {
                $temp = "n".$i;
                $tName .= $$temp;
                if($i != $n)
                {
                    $tName .= ", ";   
                }
            
                $tempi = "n".$i;
                $tValue .= "'\$".$$tempi."'";
                if($i != $n)
                {
                    $tValue .= ", ";   
                }
               
                $usqli .= $$temp."='\$".$$tempi."'";
                if($i != $n)
                {
                    $usqli .= ", ";   
                }
            }
            
            $sql = "INSERT INTO $t ($tName) VALUES ($tValue);";
            echo $sql;
            
            echo "<br><br>";
            $usql = "UPDATE $t SET ".$usqli." WHERE ***";
            echo $usql;
            
            echo "<pre>";
            echo "<b>生成表格</b> 点右键检查源文件";
            echo "<table width=\"700\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\" bgcolor=\"\">
                <form action='$a' method='$m'>
                  <tr>
                    <td width=\"\"></td>
                    <td width=\"\"></td>
                  </tr>";
            
            for($i = 1; $i <= $n; $i++)
            {
                $etemp = "e".$i;
                $ntemp = "n".$i;
                $vtemp = "v".$i;
                echo "<tr>
                      <td>".$$etemp."</td>
                      <td><input type=text class=\"\" name=\"".$$ntemp."\" value=\"".$$vtemp."\"></td>
                      </tr>";
            }
            echo "<tr>
                    <td></td>
                    <td><input type=submit value='添加' class=\"\"><input type=reset value='重置' class=\"\"></td>
                  </tr>
                  </form>
                </table>";
               
            echo "</pre>";
        }
    }
?>
----------------------------------------------------------
addxxx2.php
----------------------------------------------------------
<?
    include("config.php");
   
    if($action == "") $action = "d";
    $mysqlServer = "localhost";
    $mysqlPort = 3306;
    $mysqlUser = "root";
    $mysqlPwd = "";
   
    if($action == 'd')
    {
            $mysql_id = mysql_pconnect($mysqlServer.":".$mysqlPort, $mysqlUser, $mysqlPwd);
            
            
            if($db == "")
            {
                $db_list = mysql_list_dbs();
                echo "选择数据库<br>";
                    while ($row = mysql_fetch_object($db_list))
                {
                    echo "<a href=addxxx2.php?action=d&db=".$row->Database.">".$row->Database ."</a><br>";
                }
            }
            
            if($db != "")   
            {
                mysql_select_db($db);   
               
                $tresult = mysql_list_tables($db);
   
                if (!$tresult)
                {
                    echo "DB Error, could not list tables\n";
                    echo 'MySQL Error: ' . mysql_error();
                    exit;
                }
                echo "数据库<b>$db</b>列表<br>";
                while ($row = mysql_fetch_row($tresult))
                {
                    print "<a href=addxxx2.php?db=$db&tname=$row[0]>$row[0]</a><br>";
                }
               
                if($tname != "")
                {
                    $fields = mysql_list_fields($db, $tname);
                    $n = mysql_num_fields($fields);
                    
                    echo "<br><b>$tname</b>表中:";
                    for ($i = 0; $i < $n; $i++)
                    {
                        $name = mysql_field_name($fields, $i);
                          echo $name." ";
                        
                         $tName .= $name;
                         $vName .= "'\$".$name."'";
                         $usqli .= $name."='\$".$name."'";
                         if($i != $n-1)
                        {
                            $tName .= ", ";   
                            $vName .= ", ";   
                            $usqli .=" and ";
                        }
                        
                        //create table...
                        $table .= "<tr>
                        <td>".$name."</td>
                        <td><input type=text class=\"\" name=\"".$name."\" value=\"\"></td>
                        </tr>\n";
                        
                        
                    }
                    
                    echo "生成表:<br><br>";
                    echo "INSERT INTO $tname ($tName) VALUES ($vName);";
                    
                    echo "<br><br>";
                    $usql = "UPDATE $tname SET ".$usqli." WHERE ***";
                    echo $usql;
                    
            echo "<pre>";
            echo "<b>生成表格</b> 点右键检查源文件<br>\n";
            echo "<table width=\"700\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\" bgcolor=\"\">
                <form action='$a' method='$m'>
                  <tr>
                    <td width=\"\"></td>
                    <td width=\"\"></td>
                  </tr>";

            echo "$table";

            echo "<tr>
                    <td></td>
                    <td><input type=submit value='添加' class=\"\"><input type=reset value='重置' class=\"\"></td>
                  </tr>
                  </form>
                </table>";
               
            echo "</pre>";                    
                     
                }
            }
    }
?>  完成一个功能齐全的动态站点
莫相离 该用户已被删除
沙发
发表于 2015-2-4 11:15:25 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
小妖女 该用户已被删除
板凳
发表于 2015-2-9 22:19:37 | 只看该作者
做为1门年轻的语言,php一直很努力。
愤怒的大鸟 该用户已被删除
地板
发表于 2015-2-10 02:20:41 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
5#
发表于 2015-2-27 00:43:47 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
乐观 该用户已被删除
6#
发表于 2015-3-8 18:40:55 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
山那边是海 该用户已被删除
7#
发表于 2015-3-8 20:53:07 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
海妖 该用户已被删除
8#
发表于 2015-3-10 23:34:51 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
老尸 该用户已被删除
9#
发表于 2015-3-14 13:00:53 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
冷月葬花魂 该用户已被删除
10#
发表于 2015-3-16 19:52:49 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
分手快乐 该用户已被删除
11#
发表于 2015-3-17 15:49:32 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
小女巫 该用户已被删除
12#
发表于 2015-3-18 17:31:31 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
蒙在股里 该用户已被删除
13#
发表于 2015-3-19 04:51:20 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
变相怪杰 该用户已被删除
14#
发表于 2015-3-25 12:29:29 | 只看该作者
爱上php,他也会爱上你。
再现理想 该用户已被删除
15#
发表于 2015-4-3 03:35:20 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
不帅 该用户已被删除
16#
发表于 2015-4-3 11:45:29 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
再见西城 该用户已被删除
17#
发表于 2015-4-5 20:56:38 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
飘飘悠悠 该用户已被删除
18#
发表于 2015-4-8 10:46:22 | 只看该作者
实践是检验自己会不会的真理。
精灵巫婆 该用户已被删除
19#
发表于 2015-4-14 07:03:15 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
金色的骷髅 该用户已被删除
20#
发表于 2015-4-15 11:37:09 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-23 21:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表